REST in Practice: Hypermedia and Systems Architecture

The book

If you’ve watched any of my recent talks, one book you may have heard me mention quite a bit is “REST In Practice” by Jim Webber, Savas Parastatidas and Ian Robinson. The thing I really like about this book that differentiates it from others on REST is that it broaches the concept of REST in the enterprise. This book is essential for those building RESTful business systems. It’s a book that has helped my own understanding tremendously and one that I find practically by my bedside. It covers topics that are of concern for folks taking business systems and moving them to a RESTFul architecture style. It also gradually takes people across the chasm from traditional RPC style services, to HTTP CRUD services and then finally to RESTful services.  It is by no means the only book on the topic, as there are other good resources which I would also recommend like Subbu’s work, RESTful Web Services Cookbook.

RestBucks, the sample

One of the cornerstones of the book is a reference application called RestBucks, an application which takes the process of ordering coffee and exposes it electronically over HTTP using a set of RESTful services. The sample provides a great reference point for folks building RESTful systems to see how to address various concerns in a RESTful way. One key thing it addresses is the topic of hypermedia constraints / driving business processes through linking. Throughout the book we see various aspects of the sample implemented in various languages including Java and .NET. The .NET pieces utilize WCF 4.

Now available for WCF Web API thanks to the community

Since we announced WCF Web API, several folks have been asking for a port of RestBucks using our new web api. I actually started working on one, but due to other constraints never got around to making much progress. Fortunately folks from the community have stepped up to the plate! Several months back, Szymon Pobiega went and ported the RestBucks code to use web api: https://github.com/SzymonPobiega/restbucks-wcf. Checking the site, Szymon just recently updated the bits to Preview 4.

More recently, José Romaniello of Tellago released another port of RestBucks which he blogged about. One nice thing about this port is it includes documentation pages for the various links as well as some good content via his growing blog series which you can access here: http://joseoncode.com/category/restbucks/. Jose and I have chatted and he is committed to really fleshing out the docs and keep the sample alive. Another cool thing is that José has deployed RestBucks on App Harbour so you can access it live here! restbuckson.net. Remember these are RESTful apis, not web pages. You’ll want to use something like Fiddler to navigate the app. If you want to get the source, you can download it at the codeplex site here: http://restbucks.codeplex.com/. BTW, he’s looking for commtters Winking smile

Big thanks to Szymon and José for the port!

Get the book, get the samples!