Obsessed with REST

Early in my career I discovered my first love in programming, the build processes. I have identified it as various things over the years; build tools, unit testing, continuous integration and now continuous delivery, but it will always be my first love in programming. Over the last two years I have found a new love, REST. The great thing is these two are completely comfortable with each other and work very well together.

As I haven’t blogged very much over the time I have gained this new obsession I have lots in the backlog to write about. But as a wise friend, Adam Fortuna, once told me it so annoying to have a “I am going to start blogging again post”. I acknowledge this paragraph is in itself an acknowledgment of my failure, I will attempt to provide some value to hide my failure.

While digging into REST I found numerous resources super helpful so I figured I would catalog them in this post for anyone else interested as my first foray into sharing my REST experience with everyone.

Foundational Reading

Roy Fielding’s Dissertation that defined REST
This is the paper that started it all. Roy Fielding coined the term REST and described what it was. The majority of the disseration is establishing a mechanism for describing distributed architectures and I would recommend it to anyone interested in that topic regardless of your opinion of REST. But I think it is foundational for anyone looking to understand REST beyond a practical level.
REST in Practice: Hypermedia and Systems Architecture
There are a couple books published prior to this one by O’Reilly about REST, but I would recommend skipping those and starting here. This book gives a lot of practical examples and has incorporated a few extra years of learning on top of the original “REST” books that were published. Some of the generally accepted good practices have changed since the first round of books. At work I gained the reputation of the REST Prophet and this book was considered my REST Bible.
Martin Fowler on Richardson Maturity Model

The Ricardson Maturity Model is a way to categorize how “RESTful” an API is. It is worth noting that Roy Fielding has stated that he only considers level 3 RESTful, but it is useful to categorize where APIs are. Most public APIs stop at level 2.

Good Example APIs

Shameless Plug

This isn’t really a shameless plug for me, but I did have the pleasure to work with a colleague to refine our perspective on REST and how it should be used within our organization. Some of those ideas were bundled up and published in a book in late 2011. It is a short book, but is chalk full of clear opinions about how to solve common questions like (what should my url look like, or should I use a custom content-type). It then takes a stab at starting the wheels moving on a new standard Content-Type and framework for building and interacting with REST APIs. I would recommend having this and REST In Practice next to you at all times if you are trying to leverage REST in your environments

This entry was posted in development, rest, theory. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *