In the years following Roy Fielding’s seminal doctoral dissertation, it appeared that Representational State Transfer (REST) was the Next Big Thing in the world of enterprise IT. REST was the Web Services killer, putting the last nail in the coffin of overly complicated software interfaces. We all heralded the new age of the API.
It seemed that the hullabaloo surrounding REST peaked in, oh, 2008 or 2009 or so. Blog post after blog post struggled with what REST really was and how to do it properly. But in spite of all the Sturm und Drang, it never seemed that we got satisfying answers to either question. Just what is REST, anyway? And how do we really do it properly?
Instead of answers, it appears that people simply threw up their hands and moved on to other topics. Since Dr. Fielding was responsible for inventing the term, it could be argued that he’s the final authority on REST. But the latest post on his personal blog dates to May 2010, soon after the birth of his first child. Now, I haven’t spoken to him (Roy, if you’re out there, please comment!), but my guess is that he got fed up with having to straighten people out about what REST was and was not, and after all he had a day job and a new family, which admittedly were more important and interesting than trying to un-confuse a bunch of techies.
Cut to 2011, when ZapThink picked up the REST trail. We’d been covering SOA for years, and it looked to us like REST offered an entirely new architectural approach that could take SOA to the next level, rather than a new way to build APIs. In retrospect, REST had taken a wrong turn, and most of the available information about it was simply wrong. People had come to the belief that REST is supposed to make the Web more programmable, but in reality, REST is intended to make software (in particular, enterprise software) more Web-like.
REST is an architectural style that is a critical part of succeeding with enterprise IT, not just on SOA initiatives, but also in the Cloud. But we need to gear up the discussion, hence this post on DevX. So let’s see if we can get a conversation going. What do you think about REST today? Is REST more about better APIs, or is it about distributed hypermedia applications? Did we miss the boat on REST?