Demystifying the REST API
I really enjoyed this talk. Samantha did a fantastic job of presenting this broad range of information in a compressed format. While it was not any new information for me personally it is the type of presentation I would like to have all of the developers on our team see first hand. REST and HTTP are not actually a complicated topics but sadly most developers are lack a fundamental understanding of both. The slide deck was comprehensive but not wordy. I would definitely attend another talk by Samantha.
My notes for this talk can be found below:
- brief overview of what we are talking about REST
- text/language is the greatest invention of man kind
- text is a tool
- text allows us to “communicate” with people who have been dead for thousands of years
- people understand text and can use it to measure something like how large digital storage is by how many encyclopedias could fit on a disc.
- hypertext is the second greatest invention of man kind
- Roy Fielding – part of a working group that defined HTTP 1.0 spec. His dissertation describes REST architectural pattern
- client (UI) <—> server (data) – separation of concerns
- statelessness – each requests from the client to the server has to contain all information that the server needs to fulfill the request.
- caching is use to reduce messaging overhead
- the server should tell the client how long to cache something for. or at least provide a hash that can be used to determine if something has changed.
- layering – any component in the system is unaware of the existence of the layers
- code on demand – the server returns code that the client can run (ex. JavaScript, CSS)
- JSON+HAL – an attempt to solve the issue of JSON not being a hypertext format
- HTTP 1.1 was released in 1999 – includes 9 methods (verbs). patch and connect are not wildly used.
- methods are grouped in two ways, safe/unsafe and idempotent
- put vs post – read the spec
- Beginners Guide to HTTP Caching
- API Documentation platforms – RAML, API Blueprint, Swagger
- Books:
- Build APIs You Won’t Hate by Phil Sturgeon
- RESTful Web Services by Leonard Richardson & Sam Ruby