Richard,

> The only advice Richardson seems to offer on incoming representations is
> that "a client should be able to fetch a representation, modify it, and
> PUT it back where it found it." 

HTTP 1.1 rev01 add the concept of partial PUT for a brielf period of time.
This is  from http 1.1 rev 01:

9.6.1 Partial PUT (PUT with Content-Range)

       A PUT method MAY supply a partial entity body specified by a Content-
       Range header. The PUT requests that the resource be updated or created
       with the partial entity-body, in a manner entirely up to the origin
       server. However, the origin server may indicate to caches that they may
       perform the same update to a cached copy.

Put it was dropped in rev (02
(see http://lists.w3.org/Archives/Public/ietf-http-wg/1997OctDec/0011.html)


Roy has a great explanantion here of why patching with PUT is wrong:
" A diff is a representation
of how to get from one state to another, not a representation of
either of those states.  Therefore, it is always wrong to "patch"
the resource on a PUT of a diff, as opposed to setting the resource
state to the diff. "
(http://tech.groups.yahoo.com/group/rest-discuss/messages/
10069?threaded=1&m=e&var=1&tidx=1)


So, yes, #3 is the only RESTful option, but as Jerome suggested, you could 
create new resources:

PUT /itinerary/123/startDate



-vincent.



Reply via email to