issue 7013 (partial PUT and versioning)

The goal there is ensuring that when you are changing the price of the 
third item, the third item has not changed and is not the fourth at the 
time the change will be done on the server.

There are basically two ways of doing it, the first is ensuring that you 
are editing the right version of the resource representation. I tried to 
figure out some nice ways to do that, including when it's not supported, 
and nothing satisfactory came out. The basic idea was to mimic ETag 
support of HTTP [1] and conditionnal requests.

The other solution is to ensure that you are really changing what you want 
by providing enough context for the change to happen, even if the resource 
representation changed. In that case, changing price of item 3, and giving 
the item 3 name (or whatever helps define the current item 3), so that the 
change can happen even if item 3 is now item 4.
This can be done by defining a PATCH method, requiring a patch format 
providing the necessary context + the modification instruction. PATCH 
differs from PUT as the payload is not PUT directly in place (on the 
resource or a fragment), but PATCH according to the instructions defined 
in the patch-dialect payload.

As there might be multiple dialects to achieve this, the PATCH definition 
should be dialect-agnostic and leave the room for many patch-dialect 
format (which is really the hardest part in this proposal).

To allow timely progress of the core specs, the proposal for that issue is 
to close it with no action for the impacted WD, and either keep this email 
a documentation only on the way to fix it, or produce a WG Note with the 
Patch method definition, but it would require a default patch-dialect, 
which might take time to define.
Cheers,

[1] http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19

-- 
Baroula que barouleras, au tiéu toujou t'entourneras.

         ~~Yves

Received on Friday, 2 October 2009 09:47:50 UTC