-
Notifications
You must be signed in to change notification settings - Fork 3
Explain intent vs. successful data modification #2099
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Upon successful completion of the operation, the service creates the | ||
requested entity and relates it to the requested existing entities. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should retain this (as a MUST) because the intent was clearly to relate to the specified items.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we say MUST here, we treat "Link to Related Entities" (section 11.4.2.1) different from "Create Related Entities" (section 11.4.2.2).
`Core.ContentID` for | ||
the inserted or updated entities and MUST fail the request if an entity with associated | ||
id cannot be created as intended by the client. | ||
Other services that do not return the `Core.ContentID` MUST fail requests that contain a | ||
[value reference](#ReferencingValuesfromResponseBodies) that uses this annotation value. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we have special handling for content-id, then this should apply to any scenario in which the client expects a particular instance to be created -- including things like client-supplied keys (and, perhaps, client-supplied alternate keys?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general, we are trying to distinguish between cases where the user expects specific entities to be created versus have the equivalent effect of the aggregate of the request.
through the | ||
[`Capabilities.DeepUpdateSupport`]($$$OData-VocCap$$$#DeepUpdateSupport) | ||
term, defined in [OData-VocCap](#ODataVocCap). | ||
term, defined in [OData-VocCap](#ODataVocCap); services that |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same comment as above
A client specifies its intent to update the state of the system by making data modification requests | ||
as described in the following subsections. The interpretation of | ||
the client's intent during a successful completion of a data modification request | ||
is up to the service, subject to the following rules: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would prefer something like "The service may choose how to apply the client's intent, subject to the following rules:"
Fixes #2095