This year’s pre-fest workshop will introduce you to the basics of REST, with a combination of fun presentations, discussion, and hands-on hypermedia projects. You’ll come away from the day’s event with a better understanding of REST and hypermedia, the knowledge to build a REST Service and a REST/Hypermedia Client, and a working example of a running REST service and Hypermedia client.
Topics
- Fielding’s REST
- Hypermedia
- APIs
- Loose-Coupling
- Avoiding Hard Versioning
Desired Outcomes
- Understand REST and Hypermedia
- Know how to build a REST Service
- Know how to build a REST/Hypermedia Client
- Know what it takes to build services that can change without breaking clients
- Have an example of a running REST service and Hypermedia client
Schedule
This is our starting schedule plan. It’s a work in-progress, so feedback is
welcome! Feel free to contribute suggestions by filing issues on
this site’s issue tracker.
Morning: REST and Servers (3hrs)
Pre-reqs: Docker installed
- What is REST? (45min)
- Designing (45min)
- Understanding your clients and use cases
- Identifying resources
- Picking a hypermedia format
- HAL
- Collection+JSON
- JSON API
- Siren
- others
BREAK (15/30min)
- Implementing (45min)
- The open data sets
- Introduction to API-in-a-Box
- Building hypermedia APIs with API-in-a-Box
- Validating (45min)
- Test your hypermedia API
- Open Discussion/Q&A on REST servers
LUNCH
Afternoon: REST and Client Apps (3hrs)
- The Basics of a REST Client (45min)
- REST is Hypermedia: A short review
- Understanding H-Factors
- Dealing with the OAA challenge
- Self-Description and Adaptability
- Designing (45min)
- The Anatomy of a REST/Hypermedia Client
- Hypermedia Types and the HTML DOM
- HAL
- Siren
- Collection+JSON
- A Visual Model
BREAK (15/30min)
- Implementing (45min)
- The HTML SPA Client
- Scripting a Collection+JSON Client
- Debug
- Title
- Links
- Items
- Queries
- Templates
- Errors
- Validating (45min)
- Test your Cj Client against a Cj server
- Open Discussion/Q&A on Hypermedia clients