I know REST is meant to be resource-oriented, which roughly translates to CRUD operations on these resources using standard HTTP methods. But what I just wanted to update a part of a resource?
For example, let’s say I have Payment resource and I wanted to mark its status as “paid“. I don’t want to POST the whole Payment object through HTTP (sometimes I don’t even have all the data).
What would be the RESTful way of doing this? I’ve seen that Twitter uses the following approach for updating Twitter statuses:
http://api.twitter.com/1/statuses/update.xml?status=playing with cURL and the Twitter API
Is this approach in “the spirit” of REST?
UPDATE: PUT -> POST
Some links I found in the meantime:
The ideal way of doing this is to change a part (sub resource) of the resource and have the server return a 303 See Other with Location header to point to the altered resource. The 303 See Other tells the client that as the result of the request some other resource has changed and that the client should update the representation it holds.
In your example (media types hypothetical, of course):