Powerful web-based REST and hypermedia-style APIs are becoming more common every day, but instead of applying the same techniques and patterns to hypermedia clients, many developers rely on custom client code. With this practical guide, you’ll learn how to move from one-off implementations to general-purpose client apps that are stable, flexible, and reusable. Author Mike Amundsen provides extensive background, easy-to-follow examples, illustrative dialogues, and clear recommendations for building effective hypermedia-based client applications. Along the way, you’ll learn how to harness many of the basic principles that underpin the Web.
This was an awesome, eye-opening book that filled a big mental gap around how hypermedia-driven clients would work, with lots of code samples around the Representor pattern which I had seen mentioned in [1] but couldn't find any other references to.
This was a great follow-up to RESTful Web APIs [2]. The two of these books together paint the best picture of what REST/hypermedia APIs could actually look like in practice today, both from the server and client side. The author defines a framework called the OAA challenge -- Objects, Addresses, and Actions -- which he uses to show what the various hypermedia media types can do today, and then writes extension standards (e.g., HAL-Forms, Siren Object Profiles) to plug the gaps.
The end goal is to be able to reuse a generic API client for all APIs, like the browser does for the web, totally decoupling the client from server-side changes... and going further, letting the client automagically reflect updates from the server without actually upgrading the client code. (Again, this is the same way that website updates don't require browser updates.)
Do note that its entirely focused on human-driven clients still, not any machine-to-machine clients. But it definitely helped me understand how HTML and hypermedia-driven APIs (and subsequently UIs) are related for this class of web app. That's the one downside to this book set, imo, but I think it just reflects what is actually possible today.