using descriptor languages for content negotiation in restful apis

9

Click here to load reader

Upload: rob-zazueta

Post on 27-Jun-2015

279 views

Category:

Technology


2 download

DESCRIPTION

API Descriptor Languages (i.e. I/O Docs, Swagger, RAML, Blueprint, etc.) can and should be used to not only provide interactive documentation and define APIs at the time of creation and testing, but also to help RESTful clients dynamically work with your API. In this talk from RESTFest 2014, Rob Zazueta explains how this should work. To see the actual talk, please see http://vimeo.com/108076468.

TRANSCRIPT

Page 1: Using Descriptor Languages for Content Negotiation in RESTful APIs

Intel Confidential — Do Not Forward

Descriptor Languages for Content NegotiationRob Zazueta

RESTFest 2014

Page 2: Using Descriptor Languages for Content Negotiation in RESTful APIs

The Problem

• Client programmers must write custom code just to access and parse the data from most APIs.

• API testing tools can only go so far without writing extensive, detailed test scripts.

• We’re not going to settle on standards any time soon.

Page 3: Using Descriptor Languages for Content Negotiation in RESTful APIs

The Solutions So Far

• Siren

• Hydra

• JSON-LD

• Etc.

Page 4: Using Descriptor Languages for Content Negotiation in RESTful APIs

WWBD?

Page 5: Using Descriptor Languages for Content Negotiation in RESTful APIs
Page 6: Using Descriptor Languages for Content Negotiation in RESTful APIs
Page 7: Using Descriptor Languages for Content Negotiation in RESTful APIs

What We Need to Make This Happen

• Move beyond the response format standards discussion – you just can’t squeeze every domain model into a standard.

• Extend the purpose of descriptor languages – they’re not just for documentation and testing anymore

• Start thinking in terms of resource-driven content types – Resources are responsible for their state and their representation

Page 8: Using Descriptor Languages for Content Negotiation in RESTful APIs

Additional Benefits

• Saner versioning at the resource level – where it belongs.

• Truly responsive APIs – support as many or as few response formats as you want from the same endpoint.

• Reaffirm the contract between client and server – embed your interactive documentation into your API workflow.

• Focus on building great solutions – make it easier for client developers to use your API.

• Better change management, reusability and composability – Truly match the API models to your domain.

• Dynamic client generation – not just for code, but for a post-programming UI

Page 9: Using Descriptor Languages for Content Negotiation in RESTful APIs

Thank You!Rob [email protected]@intel.com

Shameless Plug – Please Check Out www.NARWHL.com