This is Volume 45 of This week in REST, for August 25 2012 – September 21 2012. For more information on this blog see this post. If I missed an interesting blog post, discussion or paper – just e-mail me the links, tweet or leave a comment on the latest blog post. Thanks!
Around the Web
Every discussion about REST ever – funny video that Jon Moore put together.
Why PATCH is good for your HTTP API? – “A common problem for APIs is partial update; when the client wants to change just one part of a resource’s state. … A better way is to use the HTTP PATCH method. Rather than putting the semantics into the URI, or into an application-specific POST, we put them into a generic* request format — you can think of this as a diff — which is activated by the PATCH method.” (by Mark Nottingham)
Hypermedia Programming: Lists – “The most straightforward list representation actually doesn’t look that different than a handwritten to-do list; the text/uri-list media type just consists of one URI per line. This makes the format incredibly concise, since there is very little syntactic structure (just interleaved line breaks!), while making it completely general through the use of globally unambiguous identifiers. Now let’s talk about manipulating this list with HTTP.” (by Jon Moore)
REST – Epic Semantic Fail – “Roy Fielding writes a PhD dissertation describing the architectural style of the World Wide Web. He coins the term ‘Representational State Transfer’ (REST) to describe it – after all, if you’re going to talk about something, you need to give it a name. Somehow, in a semantic shift of epic fail proportions, the term REST has also come to mean something completely different to most people, a ‘style’ of writing web services. This style has no agreed protocol.” (by Mike Hadlow)
RESTful or not? Here comes trouble! – “Very often (very often) I am asked to tell someone if their implementation is “RESTful”, “is a REST API”, is “RESTful enough”, etc. Rarely am I asked to tell someone if their chosen architectural style is appropriate for the problem at hand. IOW, people want to know if the work fits a label invented over a decade ago by a PhD candidate in his dissertation. Almost everytime the answer is the same: “NO.” This answer makes some people sad. Some angry. Occasionally, some people ask questions about why I gave the answer I did. Rarely, do people ask me if the implementation is appropriate for the intended use.” (by Mike Amundsen)
Resources and Query Parameters – “What kind of string is this? http://example.com/path?query=foo I often run into folks that think this string identifies a “http://example.com/path” resource that happens to take a parameter, which is understandable, because this is how almost every web framework is set up to implement it (identify your “/path” route, set up your controller, pick off the parameters as arguments). However, from an HTTP point of view, and especially from a hypermedia point of view, this isn’t right.” (by Jon Moore)
REST and DELETE – “There’s something I’m not getting about REST. We’re supposed to use HTTP verbs like GET, PUT, POST and DELETE. But we’re also supposed to be avoiding server state, like sessions. How can we have a stateless protocol (that is, a protocol in which all state is saved in the client, using the REST hierarchy as a sort of state machine), that supports a DELETE operation? Are some HTTP verbs more RESTful than others? It seems like PUT, POST and DELETE are all about storing state on the server.”
Bookmark stability – “one of the obligations a server has in a RESTful system (IMHO anyway) is to keep those URIs stable that make good bookmarks. (as in “Cool URIs don’t change”). Some questions keep bugging me: – Should all URIs a server makes known to clients be considered possible bookmarks? If not, how do I differentiate between those that are and those that are not?”
Events and publications
SOA patterns– “There’s a lot of material and guidance on the Service Orientation (SO of SOA) and the business aspects of SOA, There are even few books on low-level design patterns for SOA but the Architecture (the A of SOA) is regrettably somewhat neglected. The SOA patterns book aims to fill this gap and includes 26 patterns and 4 anti-patterns that are useful for building and designing real-world SOAs.”
IEEE Internet Computing special issue on Programmatic Interfaces for Web Applications – This special issue of the IEEE IC magazine includes several interesting papers, including one by Silvia Schreier and myself titled “ArRESTed Development: Guidelines for Designing REST Frameworks”. Here is the abstract of the special issue: “Programmatic interfaces for Web applications have created new opportunities for vendors to build developer ecosystems. Such interfaces have also become a core feature that developers expect from any Web application. In this special issue, the guest editors collect a number of contributions that address some of the challenges of designing modern Web service APIs, take a close look at the underlying technologies, and provide examples of the real-world impact of programmatic Web interfaces.”
Web Services and Formal Methods – The 9th International Workshop on Web Services and Formal Methods, WS-FM 2012 was held on September 6-7, 2012 in Tallinn, Estonia. Check out the pre-proceedings for the papers that were presented.
@beandog76 – “I’m going to invent new HTTP status codes: 508 NOT MY FAULT and 208 WORKS FOR ME”
@dret – “link relation tells you *why* you might want to follow a link; a media type tells you *what* you find there when following it. #REST”