Appendix C. An API Designerâs Guide to the Fielding Dissertation
Throughout this book, I use the term âFielding constraintsâ as a conceptual shorthand for the principles that a RESTful system should obey. I talk about âstatelessness,â âthe hypermedia constraint,â and so on. This appendix is my attempt to explain in a slightly more formal way what I mean by these terms and how they interact with each other.
The Fielding constraints are the âarchitectural propertiesâ of the Web defined in Roy Fieldingâs Ph.D dissertation.[60] Itâs a difficult work for the average developer to understand, a dense piece of reasoning written in an academic style and operating at a higher level of abstraction than, say, an RFC. So let me start off by showing you the practical benefits that came out of Fieldingâs work.
Roy Fielding spent most of the 1990s formalizing version 1.0 of the HTTP protocol (in RFC 1945), and developing version 1.1 (which became the famous RFC 2616). The Web was already a huge success, but its very success revealed design problems that would have prevented it from scaling further, to the level we enjoy today.
The Fielding dissertation lays out a number of properties that web-like systems might have, and then picks out the properties that make the Web successful. Then it selects constraintsâthe Fielding constraintsâwhich will make a generic network system look like the Web. These constraints are REST: a formal architectural definition that captures the ...
Get RESTful Web APIs now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.