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.