Why do you need a UUID for each request?
Due to the UUIDs, too many requests are necessary. Example: I already know the order number and would now like to see the specification for all operations of the production order. Ideally, one call should suffice to do this
GET operations/specification?productionOrderNumber={orderNumber}
Instead, I have to fetch the UUIDs of all operations first, then call GET operations/{id}/specification with every single UUID. This is complicated and not performant.
Alexander
As you can see here, UUIDs are not only highly appreciated by some users, but are even missed where they are not available:
https://forcebridge.io/question/where-can-i-find-the-material-master-in-the-api/
After all, UUIDs guarantee to obtain exactly one specific resource with a GET request, whereas this can be difficult in individual cases with domain-oriented identification.
What are primary resources?
Alexander
Primary resources are the most important objects in the field of manufacturing: workplaces, workplace groups (capacity groups or production lines), staff members, tools, production orders, operations, devices and the file repository with the documents (tool lists, NC programs, …).
All of them can be accessed directly from the entry point via a link.
Sub-resources belong to the primary resources, such as the shifts of a workplace, the shifts of a staff member, the recorded output quantities of an operation, ….
In theory, all sub-resources could be mapped as properties of the primary resources, but this is not feasible due to the amount of data. Instead, the primary resources only have the properties that are required for their domain-oriented identification, and properties with the most important information about the state of the resource. All other information can be flexibly embedded according to the needs of the user.
Alexander
In most cases, no UUIDs are required when querying resources. For example, the information you are looking for can be retrieved with a single call without using a UUID.:
operations?embed=specification&productionOrderNumber={productionOrderNumber}
The basic rule is: Never, if not absolutely necessary, access the sub-resources directly. Instead, you should always use the collection of the respective primary resource for search queries and embed the sub-resources that are of interest when you call them.
Thank you very much, this tip is extremely useful.