Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Looking for RESTful approach to update multiple resources with the same field set

Tags:

rest

The task: I have multiple resources that need to be updated in one HTTP call.

The resource type, field and value to update are the same for all resources.

Example: have set of cars by their IDs, need to update "status" of all cars to "sold".

Classic RESTFul approach: use request URL something like PUT /cars with JSON body like [{id:1,status:sold},{id:2,status:sold},...]

However this seems to be an overkill: too many times to put status:sold

Looking for a RESTful way (I mean the way that is as close to "standard" rest protocol as possible) to send status:sold just once for all cars along with the list of car IDs to update. This is what I would do:

PUT /cars With JSON {ids=[1,2,...],status:sold} but I am not sure if this is truly RESTful approach.

Any ideas?

Also as an added benefit: I would like to be able to avoid JSON for small number of cars by simply setting up a URL with parameters something like this:

PUT /cars?ids=1,2,3&status=sold

Is this RESTful enough?

like image 904
Nikolay Avatar asked May 29 '12 15:05

Nikolay


1 Answers

An even simpler way would just be:

{sold:[1,2,...]}

There's no need to have multiple methods for larger or smaller numbers of requests - it wastes development time and has no noteable impact upon performance or bandwidth.

As far as it being RESTful goes, as long as it's easily decipherable by the recipient and contains all the information you need, then there's no problem with it.

like image 77
Death Avatar answered Nov 15 '22 05:11

Death