Open MichaelHoffmeisterFesto opened 1 month ago
GetAllAssetAdministrationShellDescriptors
aka /shell-descriptors
returns elements of type AssetAdministrationShellDescriptor
while GetAllAssetAdministrationShellIdsByAssetLink
aka /lookup/shells
returns simple strings which represent the identifiers of an AAS.
You are asking to harmonize the output which could be done in two ways - always return AssetAdministrationShellDescriptor
or string. Returning only string would make the AAS registry useless so this is out of the question. Always return AssetAdministrationShellDescriptor
also does not work, as both operations are part of different service definitions, i.e., can be implemented completely independent of each other which means that the service implementing GetAllAssetAdministrationShellIdsByAssetLink
does not have the required information to return descriptor objects.
However, I assume I can see where you are coming from as I guess you assume that the AAS Basic Discovery API
might be implemented together with the AAS Registry API
, in which case, all the information would be present to return AssetAdministrationShellDescriptor
. However, this would be an assumption that is not backed by the specification. There might also be other implementations, for example, FA³ST Service combines the AAS Basic Discovery API
with the AAS Repository API
.
Does this resolve your issue? If not, could you please provide a more detailed explanation what you think the problem is exactly and how you think it should be harmonized?
Disclaimer This is just my personal opinion and not the official opinion of the REST API working group.
Yes, intention was to always get shell descriptors. If you see blocking points to not harmonize in this direction, I am fine. Closing the issue is fine. Just wanted to point to that possibility. Best Michael
The issue is that this is conceptually not possible because the operation GetAllAssetAdministrationShellIdsByAssetLink
is not part of the AAS Registry Service Specification
(see Table 1 at https://admin-shell-io.github.io/aas-specs-antora/IDTA-01002/v3.1/http-rest-api/service-specifications-and-profiles.html) and therefore might be part of a different implementation (or even implemented as stand-alone).
However, it would be possible to change this definition and make the AAS Basic Discovery API
part of the AAS Registry Service Specification
. This would have the following consequences
Discovery Service Specification
, i.e., there could no longer any stand-alone implementations of that serviceGetAllAssetAdministrationShellIdsByAssetLink
With these changes, it would be possible to change the return type to AssetAdministrationShellDescriptor
.
Is this something you would like/propose?
Hi, this is nothing that I could decide. And: it is just optimization and it changes interfaces, therefore it is only to be considerated for the next major version. However, in my case, a list of simple ids from GetAllAssetAdministrationShellIdsByAssetLink
results in dozens of calls to GetConceptDescriptionById
just in order to get the AdministrativeInformation
, therefore there is an severe performance penalty.
Again: I am fine if you put it on hold or closed.
It would also be possible to extend the Registry Service with
GetAllAssetAdministrationShellIDescriptorsdsByAssetLink
A disadvantage might be a more complex access control implementation.
However, probably these kinds of problems are solved as soon as we support a query language.
What is missing?
GetAllAssetAdministrationShellDescriptors() and GetAllAssetAdministrationShellIdsByAssetLink() return lists of AAS, but in different formats. Any chance to harmonize that?
How should it be fixed?
Return both time the descriptors