08:46 AM, Tuesday, October 16, 2007


As I was looking at a large number of so-called REST APIs, I have observed one common pattern in some APIs. They are supposed to be RESTful, but smell SOAPy. Here are some examples.

To get a person, using

GET /path/getPersons?id=subbu

in place of

GET /path/persons/subbu

To create a person, using

POST /path/createPerson?fn=Subbu&ln=Allamaraju&em=subbu@nospam.com

in place of

POST /path/persons?fn=Subbu&ln=Allamaraju&em=subbu@nospam.com

To delete a person, using

POST /path/deletePerson?id=subbu

in place of

DELETE /path/persons/subbu

To update a person, using

POST /path/updatePerson?id=subbu&em=subbu@nospam.com

in place of

PUT /path/persons/subbu/email?address=subbu@nospam.com

and so on.

There are two common themes in all these examples. Firstly, URIs are identifying operations and not resources. That is SOAPy. Secondly, the URI space in these examples is structured such that query parameters provide all the inputs while the response contains the output. That is SOAPy again. These are HTTP APIs, but not RESTful.


TrackBack URL for this entry: http://mt4.subbu.org/mt-tb.cgi/54

Dimitri Glazkov posted a quick comment on the rest-discuss mailing list stating that the design of Amazon's SimpleDB REST API is just a big welcome to 1999. The technology powering SimpleDB is definitely impressive - no doubt about it. It is a simple-t... Read More

Leave a comment