diff --git a/docs/odata-json-format/odata-json-format.html b/docs/odata-json-format/odata-json-format.html index 243ac6f8..c5828252 100644 --- a/docs/odata-json-format/odata-json-format.html +++ b/docs/odata-json-format/odata-json-format.html @@ -1271,9 +1271,9 @@

OData-Protocol, section 9.1.4.

-

A property or operation response that is of a primitive type is represented as an object with a single name/value pair, whose name is value and whose value is a primitive value.

+

A property or operation response that is of a primitive type is represented as an object with a name/value pair whose name is value and whose value is a primitive value or null.

A property or operation response that is of complex type is represented as a complex value.

-

A property or operation response that is of a collection type is represented as an object with a single name/value pair whose name is value. Its value is the JSON representation of a collection of complex type values or collection of primitive values.

+

A property or operation response that is of a collection type is represented as an object with a name/value pair whose name is value. Its value is the JSON representation of a collection of complex type values or collection of primitive values.

Example 26: primitive value

{
diff --git a/docs/odata-json-format/odata-json-format.md b/docs/odata-json-format/odata-json-format.md
index e91a3a14..1796b501 100644
--- a/docs/odata-json-format/odata-json-format.md
+++ b/docs/odata-json-format/odata-json-format.md
@@ -1899,15 +1899,15 @@ A single-valued property or operation response that has the
 [OData-Protocol, section 9.1.4](https://docs.oasis-open.org/odata/odata/v4.02/odata-v4.02-part1-protocol.html#ResponseCode204NoContent).
 
 A property or operation response that is of a primitive type is
-represented as an object with a single name/value pair, whose name is
+represented as an object with a name/value pair whose name is
 `value` and whose value is a [primitive
-value](#PrimitiveValue).
+value](#PrimitiveValue) or `null`.
 
 A property or operation response that is of complex type is represented
 as a [complex value](#ComplexValue).
 
 A property or operation response that is of a collection type is
-represented as an object with a single name/value pair whose name is
+represented as an object with a name/value pair whose name is
 `value`. Its value is the JSON representation of a
 [collection of complex type values](#CollectionofComplexValues) or
 [collection of primitive values](#CollectionofPrimitiveValues).
diff --git a/docs/odata-protocol/odata-protocol.html b/docs/odata-protocol/odata-protocol.html
index dc4c035f..ebaf7601 100644
--- a/docs/odata-protocol/odata-protocol.html
+++ b/docs/odata-protocol/odata-protocol.html
@@ -1215,7 +1215,10 @@ 

9.1.4 Response Code 204 No Content

-

A request returns 204 No Content if the requested resource has the null value, or if the service applies a return=minimal preference. In this case, the response body MUST be empty.

+

A request returns 204 No Content if the requested resource has the null value and carries no control information OData-JSON, section 4.6 other than what the minimal metadata format OData-JSON, section 3.1.1 demands and no instance annotations.

+

If the requested resource has the null value but carries additional control information or instance annotations, the request returns 200 OK instead but omits the context URL from the representation of the response, which then consists of the other control information and instance annotations only.

+

A request always returns 204 No Content if the service applies a return=minimal preference.

+

With response code 204, the response body MUST be empty.

As defined in RFC9110, a Data Modification Request that responds with 204 No Content MAY include an ETag header with a value reflecting the result of the data modification if and only if the client can reasonably “know” the new representation of the resource without actually receiving it. For a PUT request this means that the response body of a corresponding 200 OK or 201 Created response would have been identical to the request body, i.e. no server-side modification of values sent in the request body, no server-calculated values etc. For a PATCH request this means that the response body of a corresponding 200 OK or 201 Created response would have consisted of all values sent in the request body, plus (for values not sent in the request body) server-side values corresponding to the ETag value sent in the If-Match header of the PATCH request, i.e. the previous values “known” to the client.

diff --git a/docs/odata-protocol/odata-protocol.md b/docs/odata-protocol/odata-protocol.md index 42bd081a..ac883668 100644 --- a/docs/odata-protocol/odata-protocol.md +++ b/docs/odata-protocol/odata-protocol.md @@ -1827,9 +1827,19 @@ Requests](#AsynchronousBatchRequests). ### 9.1.4 Response Code `204 No Content` A request returns `204 No Content` if the requested resource has the -`null` value, or if the service applies a +`null` value and carries no control information [OData-JSON, section 4.6](https://docs.oasis-open.org/odata/odata-json-format/v4.02/odata-json-format-v4.02.html#ControlInformation) +other than what the minimal metadata format [OData-JSON, section 3.1.1](https://docs.oasis-open.org/odata/odata-json-format/v4.02/odata-json-format-v4.02.html#metadataminimalodatametadataminimal) +demands and no [instance annotations](#VocabularyExtensibility). + +If the requested resource has the `null` value but carries additional control information +or instance annotations, the request returns [`200 OK`](#ResponseCode200OK) instead but +omits the [context URL](#ContextURL) from the representation of the response, +which then consists of the other control information and instance annotations only. + +A request always returns `204 No Content` if the service applies a [`return=minimal`](#Preferencereturnrepresentationandreturnminimal) preference. -In this case, the response body MUST be empty. + +With response code `204`, the response body MUST be empty. As defined in [RFC9110](#rfc9110), a [Data Modification Request](#DataModification) that responds with diff --git a/odata-json-format/10 Media Entity.md b/odata-json-format/10 Media Entity.md index 6bc26b79..c27eea78 100644 --- a/odata-json-format/10 Media Entity.md +++ b/odata-json-format/10 Media Entity.md @@ -37,15 +37,15 @@ A single-valued property or operation response that has the [#OData-Protocol#ResponseCode204NoContent]. A property or operation response that is of a primitive type is -represented as an object with a single name/value pair, whose name is +represented as an object with a name/value pair whose name is `value` and whose value is a [primitive -value](#PrimitiveValue). +value](#PrimitiveValue) or `null`. A property or operation response that is of complex type is represented as a [complex value](#ComplexValue). A property or operation response that is of a collection type is -represented as an object with a single name/value pair whose name is +represented as an object with a name/value pair whose name is `value`. Its value is the JSON representation of a [collection of complex type values](#CollectionofComplexValues) or [collection of primitive values](#CollectionofPrimitiveValues). diff --git a/odata-protocol/8 Header Fields.md b/odata-protocol/8 Header Fields.md index f7b7b985..bb36c3f7 100644 --- a/odata-protocol/8 Header Fields.md +++ b/odata-protocol/8 Header Fields.md @@ -930,9 +930,19 @@ Requests](#AsynchronousBatchRequests). ### ##subsubsec Response Code `204 No Content` A request returns `204 No Content` if the requested resource has the -`null` value, or if the service applies a +`null` value and carries no control information [#OData-JSON#ControlInformation] +other than what the minimal metadata format [#OData-JSON#metadataminimalodatametadataminimal] +demands and no [instance annotations](#VocabularyExtensibility). + +If the requested resource has the `null` value but carries additional control information +or instance annotations, the request returns [`200 OK`](#ResponseCode200OK) instead but +omits the [context URL](#ContextURL) from the representation of the response, +which then consists of the other control information and instance annotations only. + +A request always returns `204 No Content` if the service applies a [`return=minimal`](#Preferencereturnrepresentationandreturnminimal) preference. -In this case, the response body MUST be empty. + +With response code `204`, the response body MUST be empty. As defined in [RFC9110](#rfc9110), a [Data Modification Request](#DataModification) that responds with