Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Hypermedia and H Factors
NOTE: Following information is abridged from a seminal book about Hypermedia APIs: Mike Amundsen, Building Hypermedia APIs with HTML5 and Node. It is presented here as a reference, but to get a more complete understanding of H-Factors and Hypermedia (and to support the author) you should absolutely consider buying the book.
This is how Mr. Amundsen describes H-Factors and their role in Hypermedia:
Designing hypermedia messages involves deciding how to represent the requested data (including metadata about the requested data) as well as deciding how to represent application metadata such as possible filters, searches, and options for sending data to the server for processing and storage.
The details of representing the application metadata is handled by hypermedia elements within the message. The actual message elements, attributes, etc. used to represent these options vary depending on the base format and the registered media type in use. However, despite these variances, the abstract options represented are the same across all media types and format. These are referred to in this book as “Hypermedia Factors” or “H-Factors.”
|LT||Templated Links||HTML's Form element (method=GET) which generates parametrized HTTP GET URL|
|LI||Idempotent Links||HTTP PUT and HTTP DELETE requests|
|LN||Non-Idempotent Links||HTML's Form element (method=POST)|
H-Factors: Control Data
|CR||Read Controls||HTTP Headers, such as:
|CU||Update Controls||"enctype" in:
|CM||Method Controls||"method" in:
|CL||Link Annotation Controls||CL factors provide a way for servers to “decorate” links with additional metadata using an agreed-upon set of keywords. Good example is "rel" attribute in