Past Meetup

What is REST, really? "The Design of Network-based Software Architectures"

This Meetup is past

5 people went

Location image of event venue

Details

Please join us for lunch and interesting conversations as we discuss the architecture of the web. As always, reading in advance is encouraged but not required. We would love to talk with you!

Roy Fielding's PhD thesis ( https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm ) , published in the year 2000, was intended to describe and improve the architecture of the then-nascent and burgeoning World Wide Web. Today it's almost equally known (if not always _read_) for Fielding's coinage of the moniker Representational State Transfer (REST). In some ways, this makes its impact doubly significant: It was the best description of the architecture of the web when published, and it is still influencing the evolution of the web today.

Today, it's common to (perhaps incorrectly) use the term "REST" to describe something decidedly unlike what Fielding describes in his dissertation, such as OpenAPI. While acknowledging that there is no single architectural style which is appropriate for every purpose, it is worthwhile to understand accurately what Fielding described, a year before the "invention" of JSON.

This is the first time Papers We Love Columbus has read a college thesis. If it's your first time as well, I recommend you start with this _very, very short_ guide to what a PhD is. http://matt.might.net/articles/phd-school-in-pictures/

Fielding's thesis is divided into 6 chapters. The introduction plus the first three essentially set the stage for the major contributions to follow. One useful way to think about the structure of the thesis in hindsight is to consider it in reverse: Chapters 5-6 describe REST and how to evaluate it in light of the methodology described in the preceding chapters. Chapter 3 describes different sorts of architectural styles for network-based applications, with a particular interest in hypermedia systems such as the world wide web. Chapters 1-2 discuss how to evaluate such systems.

So, how should we go about reading this? Chapters 1-3 are, in a sense, preliminary material. There are contributions to the field here, but they are largely in service to the chapters which follow. So I propose we start by reading the introduction through chapter 3. That's a fairly large page count -- although the pages are double-spaced! It's fine to skim over certain sections, particularly "Related Work," which were of no doubt interesting to Fielding's thesis committee, but might be less important to readers today. If you don't make it through chapter 3 by our meetup, no worries! We can either talk about the material in person or extend the initial reading time.

What I think we really want to accomplish in our first meeting is to set the stage for chapters 4-6, which in my mind are the most significant contributions of the dissertation and which we'll cover in our next meeting.

If you have any questions while you are approaching this material, please reach out in the discussion forums on Meetup or on Twitter ( https://twitter.com/PapersWeLoveCMH ) and I can try to help out!