- From: Yves Lafon <ylafon@w3.org>
- Date: Fri, 2 Oct 2009 05:47:48 -0400 (EDT)
- To: public-ws-resource-access@w3.org
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