Designing Hypermedia APIs


Build better
web applications.

Every web service needs a killer API to interact with numerous clients and other web services. Users expect the applications they use to work together in interesting and fresh ways; the programmable web has created interesting experiences that the originators of services would have never concieved.

Hypermedia and RESTful principles drive the largest distributed application ever: the world wide web. The web operates at massive scale and has been in production for over two decades.

So why wouldn't you use this technology to power your web service?

Buy a PDF, MOBI, or EPUB for $20 or check out the blog.

Frequently Asked Questions

Who are you?

I'm Steve Klabnik, and I've been a Rubyist for years now. I'm a Rails committer, instructor with Jumpstart Lab, and a prolific Open Source contributor.

I think that the web is the best thing that mankind has ever built, and I care about it a lot. As the web becomes more and more programmable, we need to understand how our applications interact with the overall ecosystem, and build great services to power our shared future.

Why Hypermedia?

Hypermedia APIs embrace the principles that make the web great: flexibility, standardization, and loose coupling to any given service. They take into account the principles of systems design enumerated by Roy Fielding in his thesis, but with a little less sytems theory jargon.

Hypermedia designs scale better, are more easily changed and promote decoupling and encapsulation, with all the benefits those things bring. On the downside, it is not necessarily the most latency-tolerant design, and caches can get stale if you're not careful. It may not be as efficient on an individual request level as other designs.

What am I buying?

Note that this book is still a work in progress, and is about 50 pages in length at this time. More to come!

Basically, you can buy a copy in PDF, MOBI, or EPUB. You'll get the latest build of the book, as well as email updates when a new version comes out.