AAS HTTP Client is a flexible Python library for interacting with Asset Administration Shell (AAS) and submodel repository servers over HTTP. It uses standard Python dictionaries for function inputs and outputs, making it easy to integrate with a variety of workflows. The client implements the most widely used endpoints defined in the AAS server specification, ensuring compatibility with multiple AAS repository server implementations. This allows you to connect to different AAS servers without changing your client code.
Note: Each client instance is designed to communicate with a single AAS server at a time (1-to-1 mapping). To interact with multiple servers, create a separate client instance for each server.
Tested servers include:
- Eclipse BaSyx .Net SDK server (Fluid4.0 Fork)
- Eclipse BaSyx Java SDK server
- Eclipse BaSyx Python SDK server
- Eclipse AASX server
The actual behavior of the client may vary depending on the specific server implementation and its level of compliance with the AAS specification. Supported endpoints and features depend on what each server provides.
In addition to the core HTTP client, this library offers wrapper modules for popular AAS frameworks. These wrappers use the HTTP client as middleware and expose SDK-specific data model classes for input and output, making integration with those frameworks seamless.
Currently available wrappers:
The AAS HTTP Client package also include some utility functions for for recurring tasks (provided by import 'aas_http_client.utilities'):
- encoder: base64 encoding and decoding
- sdk_tools: e.g. Framework object serialization and deserialization, basic submodel operations
- model_builder: creation of some basic AAS model elements
🤖 Releases
For a detailed introduction, please read Getting Started.
pip install aas-http-clientfrom aas_http_client import create_client_by_url
client = create_client_by_url(
base_url="http://myaasserver:5043/"
)
print(client.shell.get_shells())from aas_http_client.wrapper.sdk_wrapper import create_wrapper_by_url
wrapper = create_wrapper_by_url(
base_url="http://myaasserver:5043/"
)
print(wrapper.get_shells())