diff --git a/basyx/aas/adapter/http.py b/basyx/aas/adapter/http.py index dfd554670..2009e2de9 100644 --- a/basyx/aas/adapter/http.py +++ b/basyx/aas/adapter/http.py @@ -391,10 +391,12 @@ def __init__(self, object_store: model.AbstractObjectStore): Submount("/shells", [ Rule("/", methods=["GET"], endpoint=self.get_aas_all), Rule("/", methods=["POST"], endpoint=self.post_aas), + Rule("/$reference/", methods=["GET"], endpoint=self.get_aas_all_reference), Submount("/", [ Rule("/", methods=["GET"], endpoint=self.get_aas), Rule("/", methods=["PUT"], endpoint=self.put_aas), Rule("/", methods=["DELETE"], endpoint=self.delete_aas), + Rule("/$reference/", methods=["GET"], endpoint=self.get_aas_reference), Submount("/asset-information", [ Rule("/", methods=["GET"], endpoint=self.get_aas_asset_information), Rule("/", methods=["PUT"], endpoint=self.put_aas_asset_information), @@ -639,16 +641,24 @@ def post_aas(self, request: Request, url_args: Dict, map_adapter: MapAdapter) -> }, force_external=True) return response_t(aas, status=201, headers={"Location": created_resource_url}) - def delete_aas(self, request: Request, url_args: Dict, **_kwargs) -> Response: + def get_aas_all_reference(self, request: Request, url_args: Dict, **_kwargs) -> Response: response_t = get_response_type(request) - self.object_store.remove(self._get_shell(url_args)) - return response_t() + aashells = self._get_shells(request) + references: list[model.ModelReference] = [model.ModelReference.from_referable(aas) + for aas in aashells] + return response_t(references) # --------- AAS ROUTES --------- def get_aas(self, request: Request, url_args: Dict, **_kwargs) -> Response: response_t = get_response_type(request) aas = self._get_shell(url_args) - return response_t(aas, stripped=is_stripped_request(request)) + return response_t(aas) + + def get_aas_reference(self, request: Request, url_args: Dict, **_kwargs) -> Response: + response_t = get_response_type(request) + aas = self._get_shell(url_args) + reference = model.ModelReference.from_referable(aas) + return response_t(reference) def put_aas(self, request: Request, url_args: Dict, **_kwargs) -> Response: response_t = get_response_type(request) @@ -658,6 +668,11 @@ def put_aas(self, request: Request, url_args: Dict, **_kwargs) -> Response: aas.commit() return response_t() + def delete_aas(self, request: Request, url_args: Dict, **_kwargs) -> Response: + response_t = get_response_type(request) + self.object_store.remove(self._get_shell(url_args)) + return response_t() + def get_aas_asset_information(self, request: Request, url_args: Dict, **_kwargs) -> Response: response_t = get_response_type(request) aas = self._get_shell(url_args)