Friday 25 September 2015

Creating adaptive APIs

Creating adaptive interaction APIs

No one can argue against the success of the internet.  Websites and the network protocol of the internet (HTTP) has been fantastically successful.  Yet there is still a significant amount of research and education required to be able to offer interaction APIs at the scale of web pages.

What is an interaction API?  If we boil it down, it is one that shares just the data and the allowed actions.  We are very used to this concept of allowed action on a webpage, but often seem to miss the requirement completely when the consumer is not a web browser.

Since 2013, we have been working on a language to define resources and the allowed interactions between those resources.  This language is not an API definition format, we have swagger, wadl, and many other formats for that already.  This is a language to allow us to spend more time thinking about when the links / actions should be available and less time learning / thinking about how to implement REST.  

We communicate these allowed actions as links within a RESTful architecture and allow user-agents / clients to ask for the data in their preferred format with content negotiation headers (Accept / Content-Type).   These API details and many others can be subtle, but make a huge difference to the loose coupling and ease of use for your API.

The following videos walk through many of the fundamentals of API design and the language we've defined for describing the resource interactions.  We are using the tooling available from Temenos for building these APIs, but the language and the hypermedia server implementation are available as open source.


Video 1 - Creating the service & Media Types 
(https://www.youtube.com/watch?v=eTmftTEpzSQ)
The series of videos explores the process of creating an API with the Temenos Interaction Framework Design Studio tooling. This first episode focuses on the basic service creation, the available media types (response formats) and the API browsers available out of the box.

Video 2 - API Design 
The series of videos explores the process of creating an API with the Temenos Interaction Framework Design Studio tooling. This second episode focuses on the API Design for data services, browsable API docs and interaction services.

Video 3 - API Management 
The series of videos explores the process of creating an API with the Temenos Interaction Framework Design Studio tooling. This third episode focuses on the API Management for publication to internal or external developers through API management products such as the Azure API Manager.

Video 4 – API Errors, Tests and Orchestration 
The series of videos explores the process of creating an API with the Temenos Interaction Framework Design Studio tooling. This fourth episode focuses on the API status codes, errors, integration tests, and API Orchestration for validation and a high level of automation.

Video 5 – API Flow control and screen control 

The series of videos explores the process of creating an API with the Temenos Interaction Framework Design Studio tooling. This fifth episode focuses on the APIs ability to control the flow and state of the client and the control of the screen.