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

JSON Batch: clarify values of body property, context URL, batch in batch, continue-on-error

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: V4.01_CS01
    • Fix Version/s: V4.01_CS02
    • Component/s: JSON Format
    • Labels:
      None
    • Environment:

      Proposed

    • Proposal:
      Hide

      From 2019-6-6 discussion:

      Responses for all except #3 seem straightforward. We'll open a separate issue for #3. The rest are as proposed:

      1. Yes, "body":null and omitting the body property both mean "no body"
      2. Yes, "body":null

      3. issue ODATA-1309 created to track this issue.

      4. body content can be compressed/chunked if correctly reflected in Transfer-Encoding header
      5. explicitly mention that these don't have a context URL
      6. Part 1: Protocol clearly defines which requests can be inside a batch request, and batch is not listed:

      Batch requests allow grouping multiple individual requests into a single HTTP request payload. An individual request in the context of a batch request is a Metadata Request, Data Request, Data Modification Request, Action invocation request, or Function invocation request.

      7. If processing stops on error the batch response can be incomplete, whereas with dependsOn the batch response would contain a response for each individual request which has status:412 if the request has been skipped due to a failed dependency

      Show
      From 2019-6-6 discussion: Responses for all except #3 seem straightforward. We'll open a separate issue for #3. The rest are as proposed: Yes, "body":null and omitting the body property both mean "no body" Yes, "body":null 3. issue ODATA-1309 created to track this issue. 4. body content can be compressed/chunked if correctly reflected in Transfer-Encoding header 5. explicitly mention that these don't have a context URL 6. Part 1: Protocol clearly defines which requests can be inside a batch request, and batch is not listed: Batch requests allow grouping multiple individual requests into a single HTTP request payload. An individual request in the context of a batch request is a Metadata Request , Data Request , Data Modification Request , Action invocation request, or Function invocation request. 7. If processing stops on error the batch response can be incomplete, whereas with dependsOn the batch response would contain a response for each individual request which has status:412 if the request has been skipped due to a failed dependency
    • Resolution:
      Show
      https://www.oasis-open.org/committees/download.php/65436/odata-json-format-v4.01-wd06-2019-06-07.docx  

      Description

      Clarify:

      1. Can the body property in request/response object have the value null? If yes, does this mean "empty body" or "no body"? See also next question.
      2. Can responses with status:204 have a body?
      3. "Textual media types" are represented as a string: what exactly are "textual media types"?
      4. RFC 7230 distinguishes between "message body" and "payload body": which one is body, i.e. can a Transfer-Encoding (gzip, chunked, ...) be applied?
      5. What is the context URL of a JSON batch request or JSON batch response?
      6. Can a request object within a JSON batch request be itself a (JSON) batch request?
      7. Why do we allow the preference continue-on-error=false at all? The client can specify explicit dependencies with dependsOn if it wants certain dependency chains to stop at first error. 

        Attachments

        There are no Sub-Tasks for this issue.

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              handl Ralf Handl
            • Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: