Enter your mobile number or email address below and we'll send you a link to download the free Kindle Reading App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your email address or mobile phone number.
FREE Shipping on orders over $35.
Ships from and sold by Amazon.com.
Frequently Bought Together
Shop the New Digital Design Bookstore
Check out the Digital Design Bookstore, a new hub for photographers, art directors, illustrators, web developers, and other creative individuals to find highly rated and highly relevant career resources. Shop books on web development and graphic design, or check out blog posts by authors and thought-leaders in the design industry.
Leonard Richardson (http://www.crummy.com/) is the author of the Ruby Cookbook (O'Reilly) and of several open source libraries, including Beautiful Soup. A California native, he currently lives in New York.
An internationally known author and lecturer, Mike Amundsen travels throughout the United States and Europe consulting and speaking on a wide range of topics including distributed network architecture, Web application development, Cloud computing, and other subjects. His recent work focuses on the role hypermedia plays in creating and maintaining applications that can successfully evolve over time. He has more than a dozen books to his credit and recently contributed to the book "RESTful Web Services Cookbook" (by Subbu Allamaraju). When he is not working, Mike enjoys spending time with his family in Kentucky, USA.
Sam Ruby is a prominent software developer who is a co-chair of the W3C HTML Working Group and has made significant contributions to many of the Apache Software Foundation's open source software projects. He is a Senior Technical Staff Member in the Emerging Technologies Group of IBM.
This is an "ideas" book ... it is both implementation- and platform-agnostic, and there isn't a single line of code anywhere between its covers (except for HTML and JSON data structures.)
As expected from an "ideas" book, the text is peppered with first person thoughts, rhetorical questions, and very strongly held opinions (e.g., "REST beat SOAP" and "JSON beat XML".) If you buy into these, the book will feel natural and even inspired. If you don't, your hackles may get a workout.
Nevertheless, it ultimately does what any good "ideas" book should do - stimulates your thinking.
From a conceptual perspective, this book provides stellar explanations on topics that are must-knows for REST-practitioners. E.g., on the differences between protocol semantics and application semantics; and the relevance of HATEOAS when it comes to the semantic web.
A minor disappointment for me was that the "API" in the title was defined at a higher-level than I'd have liked. At its core, it merely proposes that a new API should not be a custom one-off, but instead should use standards whenever possible. As a result, it focuses on explanations of standards such as those that deal with collections, URI Templates, and hypermedia controls. However, it punts on the more prosaic elements of good REST API design - such as the identification of resources and operations, for a given domain.
This book's contents could also have benefited from better organization. Concepts were spread out geographically, and often needed a lot of paging back and forth to assemble a complete picture.
Despite these minor quibbles, I thoroughly enjoyed the read.Read more ›
Was this review helpful to you?
... But still not great, unfortunately. The author puts a lot of effort into discouraging people from creating their own media types, link relations, etc. then spends half of the time telling us why we should use two "standard" formats that the author himself has created (Collection+JSON and ALPS). Constantly switching between JSON and XML, various scheme/profile formats are also confusing. Finally, the book is a bit condescending and too futuristic for its own good: Facebook, Flickr, Twitter, etc. have got it all wrong, and the author is going to tell us how to do things "right". Except that no examples, beyond a trivial maze game, are given of how to do things he way the author believes is correct.
Only having a basic understanding of REST, this book introduced many new concepts and topics to me. For example, I had never heard of the ColIection+JSON standard or JSON-LD. Hypermedia was also a topic that I had barely heard about but was introduced to in this book. I thought it was interesting how the author called out a short process for how to add hypermedia to an existing API as well as if it was worth the effort. These are important questions to ask rather than just suggesting everything needs to be rewritten to be new. Also, standards are mentioned and referred to in this work, which I am guessing is due to the writer's experience as noted on the back cover. Not a negative to include that information, but I was not used to seeing specification notes in many of the traditional tech books I have read recently. The material for me was overall about how to talk about and work with REST concepts correctly. Semantics are addressed as well as when you would probably use this over that, etc. Guidance also seems helpful in sections such as "What Hypermedia Is For". I do appreciate code from the book being out on Github as well as on the book's website. While the examples are in Node.js at this time - it looks like the website is asking for different programming language ports-so examples have the potential to be added/ported over time. In summary, this book is for those looking to really take time and think about their APIs and if they are working with proper (or I guess one could only say proper in the authors' experience) REST techniques. If you need a quick tutorial to get from zero to done fast, this probably is not the material for you. As a side note, I found Appendix A and B as useful and quick references for HTTP codes and headers, but ymmv.Read more ›
Was this review helpful to you?
Fantastic book about hypermedia, a potential future for the web! I think this should be required reading for all API designers and consumers. It might not strike those who play fast and loose with code as very interesting, as its focused on good design rather than getting products out in record time, but I think it's something we should all follow.
It's very clearly written and accessible, and doesn't require too much knowledge to dive into. For reference, I started learning programming around 3 years ago through my current college major.
Here's the Cliffs Notes version:
The problem that the author approaches is that APIs these days are not consistent with one another or even with themselves. This causes several issues:
1) APIs are inflexible. Once you release them, it's very difficult to change them. This is ironic, since HTTP and the web is powerful because of its flexibility. 2) APIs are not machine-readable. You have to read prose documentation to figure out how they work, and every API is different. At the same time, API documentation is often not up to date or non-existent, and it's unscalable to expect all API developers to maintiain complete documentation for all the APIs that they ever work. 3) People create novel, non-standardized APIs for the same general tasks over and over again. There's a staggering amount of repeated work.
The hope is that following standards and imposing structure and metadata in your APIs will one day allow API clients to bridge what the author calls "the semantic gap," which amounts to making an API self-document itself by using standardized idioms and good RESTful web practices, a pattern that the author calls "hypermedia.Read more ›
Was this review helpful to you?