REST links

December 7, 2007 · Posted in APIs, REST · Comment 

I’ve been doing some research into REST and API design over the last couple of days for a client. In my travels, I collected a few really useful links and quotes.

The overriding feeling is that most APIs that claim to be REST APIs are in fact not. Most of them seem to be more RPC-style services. The pragmatic part of me says that you should just do whatever works, while the perfectionist in me admires the simplicity and cleanliness of a true RESTful style.

Anyway, here are the links and quotes, in no particular order:

There’s no way to get around platform differences when building distributed applications. The sooner people realize that, the better. – Dare Obasanjo

Mark Baker – Accidentally RESTful

Dare Obasanjo – Misunderstanding REST: A look at the Bloglines, del.icio.us and Flickr APIs

Joe Gregorio – How to Create a REST Protocol

Roy Fielding – Represetnational State Transfer (REST) - the original dissertation that coined the term REST.

Excellent concrete example of a RESTful API:

Instead of a “turnOnTheLightbulb?” request to a server object, we have a PUT “true” to the http://example.com/lightbulb/lit object supplied by the server. The http://example.com/lightbulb/lit object also responds to a GET request that returns true or false. POST is an “add information” request that doesn’t make sense for the lightbulb, nor does it really make sense to DELETE the lightbulb. So those requests would fail with a response indicating the fact. – from REST in plain English

Dare Obasanjo – WS-* is to REST as Theory is to Practice – read the comments too: they’re brilliant.

Steve Vinoski – The ESB Question includes a great quote:

Frankly, if I were an enterprise architect today, and I were genuinely concerned about development costs, agility, and extensibility, I’d be looking to solve everything I possibly could with dynamic languages and REST, and specifically the HTTP variety of REST. I’d avoid ESBs and the typical enterprise middleware frameworks unless I had a problem that really required them [...]. I’d also try to totally avoid SOAP and WS-*

The comments there are also a must.