Review – Building Hypermedia APIs with HTML 5 and Node

I rarely review books however the past few years there’s a few gems I’ve found in my REST travels that I have felt compelled to review. Mike Amundsen’s new book on hypermedia is one such work.

Note: This review is a slightly modified version of what I posted at Amazon.com.

If you are a hypermedia developer you should read this book. If you are building web apis to reach multiple devices then you should read this book. If you are building web apis that will be around for a long time and evolve over many versions, then read this book. Hypermedia systems have been around since the dawn of the web, however they have mainly been HTML pages offered up to a browser agent. It is extremely rare that you see the usage of hypermedia in web apis / machine to machine scenarios.

Hypermedia is basically a black art that very few folks actually understand. I experienced this first hand when I was the PM for WCF Web API as hypermedia was something that we wanted to be able to support. I immediately discovered that there was very little literature on the concept, there was no definitive reference to turn to. The guidance was mainly spread through a set of articles and through thousands of mail threads. Mike is one of the few who actually gets it having many years of experience building such systems. He is one of the foremost experts on the topic. Just head to his blog or the REST discussion list and you’ll see this is the case.

This book is important because with it Mike lifts the veil of mystery of how to build such systems, taking it from a black art to something broadly available to developers. Mike goes into depth defining what hypermedia is and the different ways it can manifest itself. He describes the different types of hypermedia controls and how best to use them. Mike also pays particular attention to using hypermedia in javascript agents running in the browser, something that is extremely relevant today considering the rise of rich ajax style applications using frameworks like jQuery and extjs. The book is not a book of theory, from start to finish it uses real world examples to illustrate the concepts.

The one thing I would have liked to have seen Mike elaborate on a bit more was why hypermedia itself was important. Throughout the book it does become more self-evident however for one who doesn’t understand what it is I felt that the book could have laid more of a foundation / done a bit more selling on the value. Mike does plenty of that in his blog though.

If you are building RESTful systems particularly in node (though the guidance is general applicable) then I highly recommend this book.

This entry was posted in Hypermedia, REST. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • Steven Suing

    I agree with this review. The one thing to know when reading this book is that you need to understand REST principles first because it dives right into Hypermedia types.

  • Andrew Webb

    Good review.  4 stars on Amazon seems appropriate.  For those uninterested in using HTML 5 as their representation format, worry not: there are chapters on XML and JSON as well.  Not sure why HTML 5 was picked out in the title.  The book’s ‘maze’ XML-based media type and ‘collections’ JSON-based media type will be familiar to visitors to Mike’s blog.

    One thing I found really interesting was that all the code examples (client and server) are given in one language: JavaScript.  This is possible because of JS in the browser (of course) and because of the use of Node, both on the client (CLI apps) and the server.  No more having code examples in a mish-mash of C#, VB.NET, Java, Ruby.  I like it.  Plus it was good seeing Node in action, which helped to explain its appeal.

    I mean to write my own review on amazon.co.uk, but I can’t read more than a few pages without having to stop and take notes furiously… ideas for my own hypermedia API.  So progress through the book is slow.

    Yes: strongly recommended.