Index
A
- Accept HTTP header, Handling the HTTP Accept Header
- actions, Handling Actions for HAL
- (see also HAL-FORMS extension, OAA Challenge)
- adding to API documentation, Updating the docs
- HAL, Adding an Action-Recoding the
Action definition on the HAL client
- JSON, Actions-Actions, Addresses and actions
- Siren, The Siren Format, Actions, Actions-Actions, Actions-Actions
- updating the TPS web API, Updating the TPS web API
- adaptability, metadata and, Summary
- Adapter pattern, The Adapter pattern
- addresses, Addresses-Actions
- Alexander, Christopher, Adapting and Translating
- Allamaraju, Subbu, References
- Amazon API Gateway, Objects and Properties
- Application-Level Profile Semantics (ALPS), Leverage the API vocabulary
- Architectural Styles and the Design of Network-based Software Architectures (Roy Fielding), Foreword
- asynchronous implementations, The Request, Parse, Wait Loop
- Atom Syndication Format, Atom Syndication and Publishing, The Collection+JSON Format
- AWS Gateway API, Objects and Properties
B
- backward compatibility
- Bayesian International Group of Companies (BigCo), Bob, Carol, and BigCo, Inc.
- Beck, Aaron T., Reframing the Problem
- Berners-Lee, Tim, HTML’s Backward Compatibility
- bounded context, Hypermedia and Microservices
- breaking changes, Versioning and the Web
C
- canonical models, Publish vocabularies, not models
- changes
- cj-suggest extension, The Cj-Suggest Extension-Updating the Cj client library
- Cj-Suggest Specification, The Cj-Suggest Extension
- cj-types extension, Supporting Improved Input with Cj-Types-Updating the Cj client library
- Cj-Types Specification, Extending Cj with cj-types
- class (Siren), The Siren Format, Class, Class
- Clements, Paul, API Designers
- client implementors
- client side apps, reusable (see reusable client apps)
- client side representors, Code to the media type
- client side, of TPS web app, Common Web Browser as the Client
- client, web browser as, Common Web Browser as the Client
- closed-solution apps, Closed Solution Versus Open Solution
- Cockcroft, Adrian, Hypermedia and Microservices
- code patterns (see patterns)
- cognitive reframing, Reframing the Problem
- Collection+JSON format (Cj), Other hypermedia formats, Collection+JSON Clients-Summary
- about, The Collection+JSON Format-A Quick Summary
- cj-suggest extension, The Cj-Suggest Extension-Updating the Cj client library
- cj-types extension, Supporting Improved Input with Cj-Types-Updating the Cj client library
- error element, Error
- extensions, Extending Collection+JSON-Quick Summary
- items, Items
- links, Links
- metadata and adaptability, Summary
- multilingual client SPA container, The Multiformat Client SPA Container
- OAA challenge, Cj and the OAA Challenge
- queries, Queries
- render library, The Cj Render Library
- Tasks Service implementation with, The Tasks Service with Collection+JSON-The Tasks Service with Collection+JSON
- template, Template-Using Cj templates to update an existing resource
- Collection+JSON representor, The Collection+JSON Representor-Error
- Collection+JSON SPA client, The Collection+JSON SPA Client-Quick Summary
- adding Note object to TPS API, Adding the Note Object to the TPS API-Testing the note API with the existing Cj client
- dealing with change, Dealing with Change-Quick Summary
- error, Error
- HTML container, The HTML Container
- items, Items-Items
- links, Links-Links
- queries, Queries
- template, Template-Template
- top-level parse loop, The Top-Level Parse Loop
- updating client library, Updating the Cj client library, Updating the Cj client library
- Comcast _forms, The Implementation
- comma-separated value (CSV) format, XML or JSON: Pick a Side!
- Compact URI Syntax (CURIES), Embedded Links and Objects, Sample TPS Output from the HAL Representor
- container (see HTML container)
- content negotiation, The Selection Algorithm
- content property (Siren), Properties
- context, The Top-Level Parse Loop, Addresses and actions
- context switch, Recognizing objects
- Create-Read-Update-Delete (CRUD), Designing the TPS Web API
- Crockford, Douglas, XML or JSON: Pick a Side!
- CSS, generating UI prompts with, Displaying data
- CURIES, Embedded Links and Objects
- CURIES (Compact URI Syntax), Embedded Links and Objects, Sample TPS Output from the HAL Representor
- cURL, Testing the TPS web API with cURL-Testing the TPS web API with cURL
D
- data-passing, documenting, Documenting data-passing
- defensive coding, Code defensively
- DELETE, HTML from the Server, Updating the TPS web API operations-Updating the TPS web API operations
- The Design of Everyday Things (Donald Norman), What Problem Are You Solving?
- Dijkstra, E. W., Verplank’s Humans
- Do-Feel-Know model of human-machine interaction, Verplank’s Humans-Verplank’s Humans
- Double Diamond Model of Design, Double Diamond Model of Design
E
- embedded links and objects, HAL, Embedded Links and Objects, Embedded-Embedded, Embedded-Embedded
- entities, Siren, Entities, Entities, Entities-Entities
- error element, Cj, Error, Error, Error
- Evans, Eric, Publish vocabularies, not models
- evolutionary design, Don’t take things away
H
- HAL representor module, The HAL Representor-Sample TPS Output from the HAL Representor
- HAL SPA client, The HAL SPA Client-Quick Summary
- HAL-FORMS extension, The HAL-FORMS Extension-The Implementation
- Hohpe, Gregor, The Message Translator pattern
- Home Service, The Home Service-The Home Service
- HTML
- HTML container
- HTTP
- human-machine interaction (see interaction design)
- hypermedia (map-style) clients, The Challenge of Reusable Client Apps
- hypermedia formats, new, The New Crop of Hypermedia Formats-Other hypermedia formats
- (see also specific formats)
- hypermedia interaction loop, A Hypermedia Interaction Loop-Handling Verplank’s KNOW Step
- Hypertext Application Language (HAL), Other hypermedia formats
L
- linked SubEntities (Siren), SubEntities
- links
- Cj, Links, Links, Links-Links
- HAL, The HAL Format, Links, Embedded Links and Objects, Links, Links
- HTML support for, Observations
- lack of in WEB API responses, Observations
- react to links principle, React to link relations for workflow-React to link relations for workflow
- Siren, Links, Links, Links
- list form URLs, Designing the TPS Web API
M
- Maldonado (Ulm) Model of human-machine interaction, Maldonado’s Mechanisms-Maldonado’s Mechanisms
- map-style (hypermedia) clients, The Challenge of Reusable Client Apps
- Masse, Mark, References
- media type messages, Code to the media type-Code to the media type
- message format selection, Promise media types, not objects (see output format selection)
- Message Translator pattern, The Message Translator pattern
- metadata
- microservices, Hypermedia and Microservices-Summary
- client that handles multiple formats, One Client to Rule Them All-The HAL render library
- definition, Hypermedia and Microservices
- format-switching client UI, The Format-Switching Client UI-The HAL render library
- Home Service, The Home Service-The Home Service
- multiformat client SPA container, The Multiformat Client SPA Container
- Notes Service, The Notes Service with HAL-The Notes Service with HAL
- Tasks Service, The Tasks Service with Collection+JSON-The Tasks Service with Collection+JSON
- TPS web API and, The TPS Microservices at BigCo-The Notes Service with HAL
- UNIX philosophy and, The Unix Philosophy
- User Service, The User Service with Siren-The User Service with Siren
- modularity, Separating Format from Functionality
- multiformat client SPA container, The Multiformat Client SPA Container
- MUST IGNORE, HTTP’s Must Ignore-HTTP’s Must Ignore
O
- OAA Challenge, The JSON Web API Client
- OBJECT metadata, The Profile Object Description (POD) Extension
- objects (see OAA Challenge) (see specific objects, e.g.: JSON objects)
- Ohno, Taiichi, What Problem Are You Solving?
- open-solution apps, Closed Solution Versus Open Solution-Closed Solution Versus Open Solution
- Orchard, David, HTTP’s Must Ignore
- output format selection, The Representor Pattern-Summary
- adapting and translating, Adapting and Translating-The Message Translator pattern
- assumptions favoring a single format, Why is supporting one format “better”?
- Atom Syndication Format, Atom Syndication and Publishing
- decision-making process, XML or JSON: Pick a Side!-What would it take to support multiple formats?
- fallacy of the Right One, The Fallacy of The Right One
- new hypermedia formats, The New Crop of Hypermedia Formats-Other hypermedia formats
- reframing the problem, Reframing the Problem-What would it take to support multiple formats?
- representor pattern, The Representor Pattern-Summary
- requirements for supporting multiple formats, What would it take to support multiple formats?
- selection algorithm, The Selection Algorithm
- separating format from functionality, Separating Format from Functionality
- XML vs. JSON, XML or JSON: Pick a Side!, The Fallacy of The Right One
- XMLHttpRequest object and, XML or JSON: Pick a Side!
P
- Parkinson, C. Northcote, References
- Parkinsons Law of Triviality, Web API Common Practice
- Parnas, David, Separating Format from Functionality
- Pascal's Wager, Versioning and the Web
- Pascal, Blaise, Versioning and the Web
- path-style (non-hypermedia) clients, The Challenge of Reusable Client Apps
- patterns, Adapting and Translating-The Message Translator pattern
- POST method, HTML from the Server
- POST requests, Observations
- Postels Law, TCP/IP’s Robustness Principle
- problem domain, The Challenge of Reusable Client Apps
- Profile Object Description (POD) extension
- properties
- pure HTML app, Our HTML Roots and Simple Web APIs-Our HTML Roots and Simple Web APIs
- PUT, HTML from the Server, Updating the TPS web API operations-Updating the TPS web API operations
R
- react to links principle, React to link relations for workflow-React to link relations for workflow
- reframing, Reframing the Problem
- Remote Procedural Call (RPCs), Web API Common Practice, Documenting data-passing
- representational SubEntities (Siren), SubEntities
- representor libraries, Code to the media type
- representor pattern, The Representor Pattern-Summary
- Request, Parse, Wait (RPW) loop, Preface
- about, The Request, Parse, Wait Loop-Implementing RPW in Code
- CJ client, The Top-Level Parse Loop
- hypermedia interaction loop, The Request, Parse, Wait Loop-The Request, Parse, Wait Loop
- implementing in code, Implementing RPW in Code
- responsibility assignment, Separating Format from Functionality
- REST, Foreword
- REST, as style, Web API Common Practice
- RESTful Web APIs (Sam Ruby), Foreword
- reusable client apps, The Challenge of Reusable Client Apps-Summary
- reverse representors, Code to the media type
- robustness principle, TCP/IP’s Robustness Principle
- RPC-CRUD-style APIs
- Ruby, Sam, Foreword
- Rudolph, Jason, Don’t take things away
- runtime WeSTL model, Runtime WeSTL
S
- semantic changes, Promise media types, not objects, Don’t change the meaning of things
- separation of concerns
- server implementors, guidelines for non-breaking changes, Server Implementors-All new things are optional
- server-side representor pattern, A Server-Side Model-Summary
- shared vocabulary, Publish vocabularies, not models
- Siren, Other hypermedia formats, Siren Clients-Summary
- Actions array, Actions
- basics, The Siren Format-Quick Summary
- Class element, Class
- Entities element, Entities
- Links array, Links
- OAA Challenge, Summary
- Properties object, Properties
- render library, The Siren render library
- SubEntities, SubEntities
- User Service implementation with, The User Service with Siren-The User Service with Siren
- Siren representor, The Siren Representor-Sample TPS Output from the Siren Representor
- Siren SPA client, The Siren SPA Client-Quick Summary
- actions, Actions-Actions
- adding email field and filter, Adding the Email Field and Filter-Adding the Email Field and Filter
- dealing with change, Dealing with Change-Testing the Email Field
- entities, Entities-Entities
- HTML container, The HTML Container
- link elements, Links
- POD extension, The Profile Object Description (POD) Extension-Quick Summary
- properties, Properties-Properties
- testing email field, Adding the Email Field and Filter-Testing the Email Field
- top-level parse loop, The Top-Level Parse Loop
- SOAP (Simple Object Access Protocol), Separating Format from Functionality
- SPAs (single-page app) (see specific SPAs, e.g.: Siren SPA client)
- state transitions, The WeSTL Format
- static URLs, Document link identifiers, not URLs
- string-type fields, Serialized JSON objects
- structural changes, Promise media types, not objects
- SubEntities (Siren), SubEntities, SubEntities
- subscription, The Request, Parse, Wait Loop
- Swiber, Kevin, The Siren Format
T
- Task Processing System (TPS) web API, The Task Services Web API-Observations
- adding an action to, Adding an Action-Recoding the
Action definition on the HAL client
- adding new field and filter, Changing the TPS web API
- adding Note object to, Adding the Note Object to the TPS API-Testing the note API with the existing Cj client
- adding Siren representor to, The Siren Representor-Sample TPS Output from the Siren Representor
- defaulting to JSON responses, Defaulting to JSON responses
- designing, Designing the TPS Web API-Serialized JSON objects
- documenting data-passing, Documenting data-passing
- HAL representor module for, The HAL Representor-Sample TPS Output from the HAL Representor
- Home Service microservice, The Home Service-The Home Service
- implementing, Implementing the TPS Web API-Testing the TPS web API with cURL
- microservices, The TPS Microservices at BigCo-The Notes Service with HAL
- Notes Service microservice, The Notes Service with HAL-The Notes Service with HAL
- observations, Observations
- serialized JSON objects, Serialized JSON objects-Serialized JSON objects
- steps in design of, Designing the TPS Web API
- Tasks Service microservice, The Tasks Service with Collection+JSON-The Tasks Service with Collection+JSON
- testing after adding new field and filter, Testing the Updated TPS web API
- testing with cURL, Testing the TPS web API with cURL-Testing the TPS web API with cURL
- updating operations, Updating the TPS web API operations-Updating the TPS web API operations
- User Service microservice, The User Service with Siren-The User Service with Siren
- web API common practice, Web API Common Practice
- Task Processing System (TPS) web app, The Task Processing System (TPS) Web App-Observations
- Tasks Service (microservice), The Tasks Service with Collection+JSON-The Tasks Service with Collection+JSON
- TCP/IP protocol, TCP/IP’s Robustness Principle
- template element, Cj, Template-Using Cj templates to update an existing resource, Template, Template-Template
- top-level parse loop
- The Toyota Way, What Problem Are You Solving?
- TPS objects, TPS objects
- Twitter API, Objects, Addresses-Addresses
U
- ubiquitous language, Publish vocabularies, not models
- Ulm Model of human-machine interaction, Maldonado’s Mechanisms-Maldonado’s Mechanisms
- Universal Basis for Exchanging Representations (UBER), Other hypermedia formats
- UNIX, as pattern for microservices, The Unix Philosophy
- URLs, Addresses-Addresses
- user interface (UI), CSS and, Displaying data
- User Service (microservice), The User Service with Siren-The User Service with Siren