Since Matteo, an italian XP coach and university teacher, asked me where he could find some free resources about HATEOAS for his students, I thought the thing deserves a post.
On the web
Mike Amundsen recently started a Google group related to hypermedia in the WWW: the great thing is that the group has already seen some great material, like the HAL specification, whose aim is to provide a lean media type to build hypermedia-driven applications; some code example can be found on gist, where a representation of the infamous RESTBucks DAP ( actually, a few of its states ) has been written.
On the blogs
Amundsen’s blog, by the way, is one of the most crucial resources when talking about hypermedia and system evolvability nowadays: he recently posted a masterpiece, “designing a RESTBucks media-type”, which obviously guides you towards the design of a domain-specific media type.
On Oracle’s blogs, there’s a nice article providing some explanations of HATEOAS goodness after having succesfully implemented it into some real-world projects.
Subbu Allamaraju, the writer of RESTful webservices cookbook, has briefly analyzed facebook’s new graph API, poiting out how and why they implement hypermedia as the engine of application state ( Subbu also wrote something introductive to the topic ).
Code on demand
Talking about code ( .NET & Java ), REST in practice’s authors started publishing the source code of the book on the web: for teachers, by the way, who use the book for their lessons, a few copies of the materials available within the book are freely available, you only need to directly contact the authors through the mailing list.
Wayne Lee has published a really interesting presentation entitled “Why HATEOAS?”: a cool point of his presentation is when he explains the benefits of HATEOAS through a car-parking management example.
And here come the big names: Jim Webber had a tremendously great presentation of the topic, while the second part of David Zuelke’s Designing HTTP interfaces and RESTful webservices is totally awesome, explaining with theory and practice why we should rely on hypermedia instead of giving service consumers fixed contracts which can’t be easily evolved.
A final consideration
Ok, I hope this is enogh to start with free documentation on HATEOAS: the main point of this resources is to make you conscious about the benefits of hypermedia-driven workflows.
It would be cool, if you, without knowing anything about HATEOAS before reading these stuff, after reading them are able NOT TO THINK that:
I have never seen the point of jamming links into the response, that is what documentation is for.