-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: V4.0_OS
-
Fix Version/s: V4.0_ERRATA01
-
Component/s: Protocol
-
Labels:None
-
Environment:
[Proposed][Applied]
-
Proposal:
Upsert allows constructing a resource path and providing a desired after-image. If the request is executed successfully, the identified entity will exist and look somewhat similar to the desired after-image.
Unfortunately this does not combine with optimistic concurrency.
If an operation on an entity requires an ETag, then services MUST refuse requests without an If-Match header.
If the client doesn't know (or care) whether the entity already exists, it cannot produce a valid If-Match header, because even the wildcard * does not work: HTTP defines that if the field-value is "*", the condition is false if the origin server does not have a current representation for the target resource, i.e. it is false if the entity does not yet exist.
I don't see a way to make upsert work in combination with ETags.