-
Type: Bug
-
Status: Closed
-
Priority: Minor
-
Resolution: Fixed
-
Affects Version/s: V4.0_OS
-
Fix Version/s: V4.01_CS02
-
Component/s: JSON Format, Protocol
-
Labels:
-
Proposal:
-
Resolution:
11.4.1.1 Use of ETags for Avoiding Update Conflicts
If an ETag value is specified in an If-Match or If-None-Match header of a Data Modification Request or Action Request, the operation MUST only be invoked if the if-match or if-none-match condition is satisfied.
The ETag value specified in the if-match or if-none-match request header may be obtained from an ETag header of a response for an individual entity, or may be included for an individual entity in a format-specific manner.
Issue requiring clarification: we carefully need to distinguish between OData’s meaning of “entity = an instance of an entity type" and HTTP’s meaning of “entity = the thing whose representation is transferred”. ETags (= entity tags) refer to the HTTP meaning, and thus links/references/relationships are “HTTP entities” that can have their own ETags.
Also clarify:
- Can a "HTTP entity" / "link entity" identified by xxx/$ref have an ETag?
- Is the ETag of a "link entity" logically independent of the ETags of the linked OData entities at either end?
- If xxx is a collection resource, can the references returned by GET xxx/$ref contain @odata.etag control information to carry the individual ETag of each "link entity"?
- Are EntitySet/$ref and EntitySet(<key>)/$ref only accidentally allowed by the ABNF and the prose text in Protocol 11.2.8: Requesting Entity References or are these valid resource paths?