You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<p>As defined in <ahref="#rfc9110">RFC9110</a>, a client MAY include an <code>If-Match</code> header in a request to <code>GET</code>, <code>POST</code>, <code>PUT</code>, <code>PATCH</code> or <code>DELETE</code>. The value of the <code>If-Match</code> request header MUST be an ETag value previously retrieved for the resource, or <code>*</code> to match any value.</p>
930
-
<p>If an operation on an existing resource requires an ETag, (see term <ahref="https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#OptimisticConcurrency"><code>Core.OptimisticConcurrency</code></a> in <ahref="#ODataVocCore">OData-VocCore</a> and property <code>OptimisticConcurrencyControl</code> of type <ahref="https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Capabilities.V1.md#NavigationPropertyRestriction"><code>Capabilities.NavigationPropertyRestriction</code></a> in <ahref="#ODataVocCap">OData-VocCap</a>) and the client does not specify an <code>If-Match</code> request header in a <ahref="#DataModification">Data Modification Request</a> or in an <ahref="#Actions">Action Request</a> invoking an action bound to the resource, the service responds with a <code>428 Precondition Required</code> and MUST ensure that no observable change occurs as a result of the request.</p>
929
+
<p>As defined in <ahref="#rfc9110">RFC9110</a>, a client MAY include an <code>If-Match</code> header in a request to <code>GET</code>, <code>POST</code>, <code>PUT</code>, <code>PATCH</code> or <code>DELETE</code>. The value of the <code>If-Match</code> request header MUST be an ETag value previously retrieved for the resource, or <code>*</code>.</p>
930
+
<p>If modification of an existing resource requires an ETag, (see term <ahref="https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#OptimisticConcurrency"><code>Core.OptimisticConcurrency</code></a> in <ahref="#ODataVocCore">OData-VocCore</a> and property <code>OptimisticConcurrencyControl</code> of type <ahref="https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Capabilities.V1.md#NavigationPropertyRestriction"><code>Capabilities.NavigationPropertyRestriction</code></a> in <ahref="#ODataVocCap">OData-VocCap</a>) and the client does not specify an <code>If-Match</code> request header in a <ahref="#DataModification">Data Modification Request</a> or in an <ahref="#Actions">Action Request</a> invoking an action bound to the resource, the service responds with a <code>428 Precondition Required</code> and MUST ensure that no observable change occurs as a result of the request.</p>
931
931
<p>If present, the request MUST only be processed if the specified ETag value matches the current ETag value of the target resource. Services sending <ahref="#HeaderETag"><code>ETag</code></a> headers with weak ETags that only depend on the representation-independent entity state MUST use the weak comparison function because it is sufficient to prevent accidental overwrites. This is a deviation from <ahref="#rfc9110">RFC9110</a>.</p>
932
932
<p>If the value does not match the current ETag value of the resource for a <ahref="#DataModification">Data Modification Request</a> or <ahref="#Actions">Action Request</a>, the service MUST respond with <ahref="#ResponseCode412PreconditionFailed"><code>412 Precondition Failed</code></a> and MUST ensure that no observable change occurs as a result of the request. In the case of an <ahref="#UpsertanEntity">upsert</a>, if the addressed entity does not exist the provided ETag value is considered not to match.</p>
933
-
<p>An <code>If-Match</code> header with a value of <code>*</code> in a <code>PUT</code> or <code>PATCH</code> request results in an <ahref="#UpsertanEntity">upsert request</a> being processed as an update and not an insert.</p>
933
+
<p>An <code>If-Match</code> header with a value of <code>*</code>matches any current representation of the resource, and in a <code>PUT</code> or <code>PATCH</code> request results in an <ahref="#UpsertanEntity">upsert request</a> being processed as an <ahref="#UpdateanEntity">update</a> and not an <ahref="#CreateanEntity">insert</a>, independent of whether the resource requires an ETag.</p>
934
934
<p>The <code>If-Match</code> header MUST NOT be specified on a batch request, but MAY be specified on individual requests within the batch.</p>
<p>As defined in <ahref="#rfc9110">RFC9110</a>, a client MAY include an <code>If-None-Match</code> header in a request to <code>GET</code>, <code>POST</code>, <code>PUT</code>, <code>PATCH</code> or <code>DELETE</code>. The value of the <code>If-None-Match</code> request header MUST be an ETag value previously retrieved for the resource, or <code>*</code>.</p>
940
940
<p>If present, the request MUST only be processed if the specified ETag value does not match the current ETag value of the resource, using the weak comparison function (see <ahref="#rfc9110">RFC9110</a>). If the value matches the current ETag value of the resource, then for a <code>GET</code> request, the service SHOULD respond with <ahref="#ResponseCode304NotModified"><code>304 Not Modified</code></a>, and for a <ahref="#DataModification">Data Modification Request</a> or <ahref="#Actions">Action Request</a>, the service MUST respond with <ahref="#ResponseCode412PreconditionFailed"><code>412 Precondition Failed</code></a> and MUST ensure that no observable change occurs as a result of the request.</p>
941
-
<p>An <code>If-None-Match</code> header with a value of <code>*</code> in a <code>PUT</code> or <code>PATCH</code> request results in an <ahref="#UpsertanEntity">upsert request</a> being processed as an <ahref="#CreateanEntity">insert</a> and not an <ahref="#UpdateanEntity">update</a>.</p>
941
+
<p>An <code>If-None-Match</code> header with a value of <code>*</code>“matches” if there is no current representation of the resource, and in a <code>PUT</code> or <code>PATCH</code> request results in an <ahref="#UpsertanEntity">upsert request</a> being processed as an <ahref="#CreateanEntity">insert</a> and not an <ahref="#UpdateanEntity">update</a>, independent of whether the resource requires an ETag.</p>
942
942
<p>The <code>If-None-Match</code> header MUST NOT be specified on a batch request, but MAY be specified on individual requests within the batch.</p>
0 commit comments