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.