Skip to content

Commit

Permalink
ODATA-1561 (#157)
Browse files Browse the repository at this point in the history
  • Loading branch information
ralfhandl committed Aug 30, 2023
1 parent 18e5d59 commit 941e439
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 6 deletions.
4 changes: 2 additions & 2 deletions docs/odata-protocol/odata-protocol.html
Expand Up @@ -843,7 +843,7 @@ <h4 id="82810-preference-wait"><a name="Preferencewait" href="#Preferencewait">8
<h2 id="83-response-headers"><a name="ResponseHeaders" href="#ResponseHeaders">8.3 Response Headers</a></h2>
<p>In addition to the <a href="#CommonHeaders">Common Headers</a>, the following response headers have defined meaning in OData.</p>
<h3 id="831-header-asyncresult"><a name="HeaderAsyncResult" href="#HeaderAsyncResult">8.3.1 Header <code>AsyncResult</code></a></h3>
<p>A 4.01 service MUST include the <code>AsyncResult</code> header in <a href="#ResponseCode200OK"><code>200 OK</code></a>response from a status monitor resource in order to indicate the final <a href="#CommonResponseStatusCodes">HTTP Response Status Code</a> of an <a href="#AsynchronousRequests">asynchronously executed request</a>.</p>
<p>A 4.01 service MUST include the <code>AsyncResult</code> header in <a href="#ResponseCode200OK"><code>200 OK</code></a> responses from a status monitor resource in order to indicate the final <a href="#CommonResponseStatusCodes">HTTP Response Status Code</a> of an <a href="#AsynchronousRequests">asynchronously executed request</a>. The header value is the three-digit HTTP response code, see <a href="#ODataABNF">OData-ABNF</a>.</p>
<p>The <code>AsyncResult</code> header SHOULD NOT be applied to individual responses within a batch.</p>
<h3 id="832-header-etag"><a name="HeaderETag" href="#HeaderETag">8.3.2 Header <code>ETag</code></a></h3>
<p>A response MAY include an <code>ETag</code> header, see <a href="#rfc7232">RFC7232</a>. Services MUST include this header if they require an ETag to be specified when modifying the resource.</p>
Expand Down Expand Up @@ -2172,7 +2172,7 @@ <h2 id="116-asynchronous-requests"><a name="AsynchronousRequests" href="#Asynchr
<p>If the client has specified<code> respond-async</code> in the request, the service MAY process the request asynchronously and return a <a href="#ResponseCode202Accepted"><code>202 Accepted</code></a> response. A service MUST NOT reply to a <a href="#DataServiceRequests">Data Service Request</a> with <code>202 Accepted</code> if the request has not included the <code>respond-async</code> preference.</p>
<p>Responses that return <code>202 Accepted</code> MUST include a <a href="#HeaderLocation"><code>Location</code> header</a> pointing to a <em>status monitor resource</em> that represents the current state of the asynchronous processing in addition to an optional <a href="#HeaderRetryAfter"><code>Retry-After</code> header</a> indicating the time, in seconds, the client should wait before querying the service for status. Services MAY include a response body, for example, to provide additional status information.</p>
<p>A <code>GET</code> request to the status monitor resource again returns <code>202 Accepted</code> response if the asynchronous processing has not finished. This response MUST again include a <a href="#HeaderLocation"><code>Location</code> header</a> and MAY include a <a href="#HeaderRetryAfter"><code>Retry-After</code> header</a> to be used for a subsequent request. The <code>Location</code> header and optional <code>Retry-After</code> header may or may not contain the same values as returned by the previous request.</p>
<p>A <code>GET</code> request to the status monitor resource returns <a href="#ResponseCode200OK"><code>200 OK</code></a> once the asynchronous processing has completed. For OData 4.01 and greater responses, or OData 4.0 requests that include an <code>Accept </code>header that does not specify <code>application/http</code>, the response MUST include the <a href="#HeaderAsyncResult"><code>AsyncResult</code></a> response header. Any other headers, along with the response body, represent the result of the completed asynchronous operation. If the <code>GET</code> request to the status monitor includes an <code>OData-MaxVersion</code> header with a value of <code>4.0</code> and no <code>Accept</code> header, or an <code>Accept</code> header that includes <code>application/http</code>, then the body of the final <code>200 OK</code> response MUST be represented as an HTTP message, as described in <a href="#rfc7230">RFC7230</a>, which is the full HTTP response to the completed asynchronous operation.</p>
<p>A <code>GET</code> request to the status monitor resource returns <a href="#ResponseCode200OK"><code>200 OK</code></a> once the asynchronous processing has completed. For OData 4.01 and greater responses, or OData 4.0 requests that include an <code>Accept</code> header that does not specify <code>application/http</code>, the response MUST include the <a href="#HeaderAsyncResult"><code>AsyncResult</code></a> response header. Any other headers, along with the response body, represent the result of the completed asynchronous operation. If the <code>GET</code> request to the status monitor includes an <code>OData-MaxVersion</code> header with a value of <code>4.0</code> and no <code>Accept</code> header, or an <code>Accept</code> header that includes <code>application/http</code>, then the body of the final <code>200 OK</code> response MUST be represented as an HTTP message, as described in <a href="#rfc7230">RFC7230</a>, which is the full HTTP response to the completed asynchronous operation.</p>
<p>A <code>DELETE</code> request sent to the status monitor resource requests that the asynchronous processing be canceled. A <code>200 OK</code> or a <a href="#ResponseCode204NoContent"><code>204 No Content</code></a> response indicates that the asynchronous processing has been successfully canceled. A client can request that the <code>DELETE</code> should be executed asynchronously. A <code>202 Accepted</code> response indicates that the cancellation is being processed asynchronously; the client can use the returned <a href="#HeaderLocation"><code>Location</code> header</a> (which MUST be different from the status monitor resource of the initial request) to query for the status of the cancellation. If a delete request is not supported by the service, the service returns <a href="#ResponseCode405MethodNotAllowed"><code>405 Method Not Allowed</code></a>.</p>
<p>After a successful <code>DELETE</code> request against the status monitor resource, any subsequent <code>GET</code> requests for the same status monitor resource returns <a href="#ResponseCode404NotFound"><code>404 Not Found</code></a>.</p>
<p>If an asynchronous request is cancelled for reasons other than the consumers issuing a <code>DELETE</code> request against the status monitor resource, a <code>GET</code> request to the status monitor resource returns <code>200 OK</code> with a response body containing a single HTTP response with a status code in the <a href="#ServerErrorResponses"><code>5xx Server Error</code></a> range indicating that the operation was cancelled.</p>
Expand Down
5 changes: 3 additions & 2 deletions docs/odata-protocol/odata-protocol.md
Expand Up @@ -1631,10 +1631,11 @@ response headers have defined meaning in OData.
### <a name="HeaderAsyncResult" href="#HeaderAsyncResult">8.3.1 Header `AsyncResult`</a>

A 4.01 service MUST include the `AsyncResult` header in
[`200 OK`](#ResponseCode200OK)response from a status monitor resource in
[`200 OK`](#ResponseCode200OK) responses from a status monitor resource in
order to indicate the final [HTTP Response Status
Code](#CommonResponseStatusCodes) of an [asynchronously executed
request](#AsynchronousRequests).
The header value is the three-digit HTTP response code, see [OData-ABNF](#ODataABNF).

The `AsyncResult` header SHOULD NOT be applied to individual responses
within a batch.
Expand Down Expand Up @@ -5516,7 +5517,7 @@ contain the same values as returned by the previous request.

A `GET` request to the status monitor resource returns [`200 OK`](#ResponseCode200OK) once the
asynchronous processing has completed. For OData 4.01 and greater
responses, or OData 4.0 requests that include an `Accept `header that
responses, or OData 4.0 requests that include an `Accept` header that
does not specify `application/http`, the response MUST include the
[`AsyncResult`](#HeaderAsyncResult) response header. Any other headers,
along with the response body, represent the result of the completed
Expand Down
2 changes: 1 addition & 1 deletion odata-protocol/11.5 Operations.md
Expand Up @@ -479,7 +479,7 @@ contain the same values as returned by the previous request.

A `GET` request to the status monitor resource returns [`200 OK`](#ResponseCode200OK) once the
asynchronous processing has completed. For OData 4.01 and greater
responses, or OData 4.0 requests that include an `Accept `header that
responses, or OData 4.0 requests that include an `Accept` header that
does not specify `application/http`, the response MUST include the
[`AsyncResult`](#HeaderAsyncResult) response header. Any other headers,
along with the response body, represent the result of the completed
Expand Down
3 changes: 2 additions & 1 deletion odata-protocol/8 Header Fields.md
Expand Up @@ -757,10 +757,11 @@ response headers have defined meaning in OData.
### ##subsubsec Header `AsyncResult`

A 4.01 service MUST include the `AsyncResult` header in
[`200 OK`](#ResponseCode200OK)response from a status monitor resource in
[`200 OK`](#ResponseCode200OK) responses from a status monitor resource in
order to indicate the final [HTTP Response Status
Code](#CommonResponseStatusCodes) of an [asynchronously executed
request](#AsynchronousRequests).
The header value is the three-digit HTTP response code, see [OData-ABNF](#ODataABNF).

The `AsyncResult` header SHOULD NOT be applied to individual responses
within a batch.
Expand Down

0 comments on commit 941e439

Please sign in to comment.