OData has supported two types of updates for a while now:
  • Replace Semantics via a standard PUT: this updates the whole entry with what has been provided on the wire, so any properties missing from the wire will be reset to their default values.
  • Merge Semantics via a MERGE tunneled through POST using the X-Http-Method header: this updates only the properties on the wire, so any properties missing will be left unchanged.
Now when we added MERGE there wasn't a standard HTTP way to request merge semantics.
However PATCH is now a standard, and is semantically equivalent to OData's MERGE.
So we think - given our principle of adopting HTTP and ATOM standards wherever possible - that the next version of OData should support both PATCH and MERGE, and treat PATCH requests like MERGE requests.
Thoughts?
Alex