-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: V4.0_OS
-
Fix Version/s: V4.0_ERRATA01
-
Component/s: JSON Format
-
Labels:None
-
Environment:
[Proposed][Applied]
-
Proposal:
In minimal metadata the service omits metadata that can be derived by the client from the payload based on convention, which implies that metadata must be included if it cannot be derived from the payload based on convention. However, in the rules for including @odata.id we don't explicitly mention that the id, which can only be computed if key properties are included in the payload, is thus returned if any key properties are omitted from the response.
This is bad, because if services don't realize they need to include the key fields in this case it will cause clients to be unable to track entities (for example, in doing a merge). Even worse, in delta responses the payload for an updated entity is only required to include changed properties, so if the keys haven't changed (which, by definition, they can't) and the service omits them, the client has no way to correlate the change with the original entity.
Also, the existing rules omit the case for odata.metadata=none.