Skip to content

estebistec/hypermedia-notes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 

Repository files navigation

Hypermedia Notes

Overview

This contains my notes about designing hypermedia APIs.

Currently the notes are very brief and mostly this is a list of pre-defined formats and specs that can make up an API design.

Design Process

See RESTful Web APIs for a thorough description of the design process.

Design Goals

  • Linking and forms to advertise possible next states (requests)
  • Reference data resources where helpful in making next-requests
  • Clearly define link relations
  • Clearly identify and describe profiles/message-types

Design Elements

Hypermedia types

Provide hypermedia factors and leave room to layer on application-specific semantics.

Application-specific media types

Types that fully define specific applications. They may still make good base types for other applications that further specialize what they define.

Machine-readable message-type descriptions / profiles

Modeling

These usually generate some combination of documentation, server, and client. This is not the same thing as message-type descriptions and profiles, as these are meant to describe those things on specific trees of URLs. This usually (always) means a specific server or implementation.

Supporting specs

Implementation Support

Frameworks

I find opinionated API frameworks to be detrimental. They never or rarely make clients and servers equals in the resulting services. It probably takes modelling (see above) to do this and from there a server framework could/should be minimal (e.g., sinatra, morepath, spark).

Service gateways and management layers

Resources

Concepts

Design advice

Type registries

Service registries

About

My notes about designing hypermedia APIs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published