Praise for RESTful Web APIs;Dedication;Foreword;Introduction; Duplication of Effort; Hypermedia Is Hard; What''s in This Book?; What''s Not in This Book; Administrative Notes; Understanding Standards; Conventions Used in This Book; Using Code Examples; SafariĀ® Books Online; How to Contact Us; Acknowledgements;Chapter 1: Surfing the Web; 1.1 Episode 1: The Billboard; 1.2 Episode 2: The Home Page; 1.3 Episode 3: The Link; 1.4 Episode 4: The Form and the Redirect; 1.5 Application State; 1.6 Resource State; 1.7 Connectedness; 1.
8 The Web Is Something Special; 1.9 Web APIs Lag Behind the Web; 1.10 The Semantic Challenge;Chapter 2: A Simple API; 2.1 HTTP GET: Your Safe Bet; 2.2 How to Read an HTTP Response; 2.3 JSON; 2.4 Collection+JSON; 2.5 Writing to an API; 2.
6 HTTP POST: How Resources Are Born; 2.7 Liberated by Constraints; 2.8 Application Semantics Create the Semantic Gap;Chapter 3: Resources and Representations; 3.1 A Resource Can Be Anything; 3.2 A Representation Describes Resource State; 3.3 Representations Are Transferred Back and Forth; 3.4 Resources with Many Representations; 3.5 The Protocol Semantics of HTTP; 3.
6 Which Methods Should You Use?;Chapter 4: Hypermedia; 4.1 HTML as a Hypermedia Format; 4.2 URI Templates; 4.3 URI Versus URL; 4.4 The Link Header; 4.5 What Hypermedia Is For; 4.6 Beware of Fake Hypermedia!; 4.7 The Semantic Challenge: How Are We Doing?;Chapter 5: Domain-Specific Designs; 5.
1 Maze+XML: A Domain-Specific Design; 5.2 How Maze+XML Works; 5.3 The Collection of Mazes; 5.4 Is Maze+XML an API?; 5.5 Client #1: The Game; 5.6 A Maze+XML Server; 5.7 Client #2: The Mapmaker; 5.8 Client #3: The Boaster; 5.
9 Clients Do the Job They Want to Do; 5.10 Extending a Standard; 5.11 The Mapmaker''s Flaw; 5.12 Maze as Metaphor; 5.13 Meeting the Semantic Challenge; 5.14 Where Are the Domain-Specific Designs?; 5.15 If You Can''t Find a Domain-Specific Design, Don''t Make One; 5.16 Kinds of API Clients;Chapter 6: The Collection Pattern; 6.
1 What''s a Collection?; 6.2 Collection+JSON; 6.3 How a (Generic) Collection Works; 6.4 The Atom Publishing Protocol (AtomPub); 6.5 The Semantic Challenge: How Are We Doing?;Chapter 7: Pure-Hypermedia Designs; 7.1 Why HTML?; 7.2 HTML''s Capabilities; 7.3 Microformats; 7.
4 The hMaze Microformat; 7.5 Microdata; 7.6 Changing Resource State; 7.7 The Alternative to Hypermedia Is Media; 7.8 HTML''s Limits; 7.9 The Hypertext Application Language; 7.10 Siren; 7.11 The Semantic Challenge: How Are We Doing?;Chapter 8: Profiles; 8.
1 How Does A Client Find the Documentation?; 8.2 What''s a Profile?; 8.3 Linking to a Profile; 8.4 Profiles Describe Protocol Semantics; 8.5 Profiles Describe Application Semantics; 8.6 XMDP: The First Machine-Readable Profile Format; 8.7 ALPS; 8.8 JSON-LD; 8.
9 Embedded Documentation; 8.10 In Summary;Chapter 9: The Design Procedure; 9.1 Two-Step Design Procedure; 9.2 Seven-Step Design Procedure; 9.3 Example: You Type It, We Post It; 9.4 Some Design Advice; 9.5 Adding Hypermedia to an Existing API; 9.6 Alice''s Second Adventure;Chapter 10: The Hypermedia Zoo; 10.
1 Domain-Specific Formats; 10.2 Collection Pattern Formats; 10.3 Pure Hypermedia Formats; 10.4 GeoJSON: A Troubled Type; 10.5 The Semantic Zoo;Chapter 11: HTTP for APIs; 11.1 The New HTTP/1.1 Specification; 11.2 Response Codes; 11.
3 Headers; 11.4 Choosing Between Representations; 11.5 HTTP Performance; 11.6 Avoiding the Lost Update Problem; 11.7 Authentication; 11.8 Extensions to HTTP; 11.9 HTTP 2.0;Chapter 12: Resource Description and Linked Data; 12.
1 RDF; 12.2 When to Use the Description Strategy; 12.3 Resource Types; 12.4 RDF Schema; 12.5 The Linked Data Movement; 12.6 JSON-LD; 12.7 Hydra; 12.8 The XRD Family; 12.
9 The Ontology Zoo; 12.10 Conclusion: The Description Strategy Lives!;Chapter 13: CoAP: REST for Embedded Systems; 13.1 A CoAP Request; 13.2 A CoAP Response; 13.3 Kinds of Messages; 13.4 Delayed Response; 13.5 Multicast Messages; 13.6 The CoRE Link Format; 13.
7 Conclusion: REST Without HTTP;The Status Codex; Problem Detail Documents; Families of Status Codes; Four Status Codes: The Bare Minimum; 1xx: Informational; 2xx: Successful; 3xx: Redirection; 4xx: Client-Side Error; 5xx: Server-Side Error;The Header Codex; Custom HTTP Headers; The Headers;An API Designer''s Guide to the Fielding Dissertation; Architectural Properties of the Web; Interface Constraints; Architectural Constraints; Summary; Conclusion;Glossary;Index;Colophon;.