Chapter 3. Hypermedia Design

The problem is essentially the one discussed by science fiction writers: “how do you get communications started among totally uncorrelated ‘sapient’ beings?”

J.C.R. Licklider, 1966

A foundational element of any system-level design is a set of shared principles or understandings about how parts of the system interact. That is the overarching problem we’ll address in this chapter—how to design systems where machines built by different people who have never met can successfully interact with each other. The recipes in this chapter focus on the design aspects of hypermedia systems. To do that, you’ll find recipes that explore the relationship between media types, hypermedia controls, data properties, and semantic profiles that help bring them together (see Figure 3-1).

Tip

If you’re interested in the background concepts and technologies behind designing hypermedia-driven solutions, see “Establishing a Foundation with Hypermedia Designs”.

For communications within the web, HTTP is at the heart of this shared understanding. HTTP sets the rules—and the expectations—for sending data between services. And, despite the fact that HTTP’s history dates back to the mid 1980s, it is still ubiquitous and relevant after more than 30 years.

rwcb 0301
Figure 3-1. Hypermedia design recipes

It is important to remember that HTTP is the higher-level ...

Get RESTful Web API Patterns and Practices Cookbook 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.