Uploaded image for project: 'OASIS Open Data Protocol (OData) TC'
  1. OASIS Open Data Protocol (OData) TC
  2. ODATA-539

Delta response encoding is unnecessarily verbose and change type is missing when odata.metadata=none

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: V4.0_CS01
    • Fix Version/s: V4.0_CSD03
    • Labels:
      None
    • Environment:

      [Applied]

    • Proposal:
      Hide

      Close without action.

      Accepted: https://www.oasis-open.org/committees/download.php/50924/odata-meeting-55_on-20131003-minutes.html#odata-539

      Original proposal part (a) is covered by ODATA-538
      Original proposal part (b) is covered by ODATA-527

      Original proposal was:
      (a) Define a separate annotation for change type in delta responses, so that change type can be determined even when the Context URL is omitted.

      The rationale being that Context URL is a hybrid of information that is otherwise known to a metadata-aware client (which can remember what it asked for in the GET request). Apart from odata.type (which is covered in ODATA-538), the change type would appear to be the only information about delta responses that a metadata-aware client cannot determine from metadata it already holds, and the request it knows it sent. Having this information embedded within a Context URL, which the client does not need the rest of, is questionable.

      (b) Require servers to use relative URLs in id/source/target, or at least allow clients to "indicate that they Prefer" relative URLs.

      Show
      Close without action. Accepted: https://www.oasis-open.org/committees/download.php/50924/odata-meeting-55_on-20131003-minutes.html#odata-539 Original proposal part (a) is covered by ODATA-538 Original proposal part (b) is covered by ODATA-527 Original proposal was: (a) Define a separate annotation for change type in delta responses, so that change type can be determined even when the Context URL is omitted. The rationale being that Context URL is a hybrid of information that is otherwise known to a metadata-aware client (which can remember what it asked for in the GET request). Apart from odata.type (which is covered in ODATA-538 ), the change type would appear to be the only information about delta responses that a metadata-aware client cannot determine from metadata it already holds, and the request it knows it sent. Having this information embedded within a Context URL, which the client does not need the rest of, is questionable. (b) Require servers to use relative URLs in id/source/target, or at least allow clients to "indicate that they Prefer" relative URLs.
    • Resolution:
      Show
      Accepted: https://www.oasis-open.org/committees/download.php/50924/odata-meeting-55_on-20131003-minutes.html#odata-539

      Description

      For a number of reasons, the encoding of delta responses is unnecessarily verbose, which will result in excessive network and CPU utilization, particularly for offline-enabled mobile devices.

      (1) To distinguish between changed entity, deleted entity, changed link, or deleted link requires use of the Context URL which, as described in ODATA-538, can be unnecessarily verbose.

      (2) The "id" in deleted entities and the "source"/"target" in added/deleted links is not required to use a relative URL, and clients cannot control whether the server will or will not use relative URLs.

      Additionally, if odata.metadata=none, clients may be unable to decode delta responses, since odata.context may be omitted in that case. Interestingly, odata.deltaLink cannot be omitted from the response, although a delta response without change type for each of the included changes would be useless to a client.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              evan.ireland.2 Evan Ireland
            • Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: