are hypermedia apis just hype? - aaron phethean (temenos) & daniel feist (mulesoft)

52
Are just ‘Hypermedia API’s’ Hype? Daniel Feist, MuleSoft Aaron Phethean, Temenos

Upload: jaxlondonconference

Post on 10-May-2015

1.084 views

Category:

Technology


2 download

DESCRIPTION

Presented at JAX London 2013 Hypermedia or HATEOAS APIs get a lot of air cover but there aren't many of them in the wild. This session will summarize the challenges that exist when building hypermedia REST API’s and explain why it’s worth it. We’ll take a comparative look at various different approaches for using hypermedia in a typical REST API, before taking a closer look at an approach that automatically generates links from a semantically rich API definition.

TRANSCRIPT

Page 1: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Are

just

‘Hypermedia API’s’

Hype? Daniel Feist, MuleSoft Aaron Phethean, Temenos

Page 2: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Introductions

* All contents Copyright © 2013, MuleSoft Inc.

Daniel Feist, Principal Architect @dfeist

●  Founded 2006 by Ross Mason, to ‘Take the donkey work out of integration’.

●  Now the most widely used integration platform for connecting SaaS and enterprise applications in the cloud and on-premise

Page 3: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Introductions

* All contents Copyright © 2013, MuleSoft Inc.

Aaron Phethean Product Manager @aphethean

• Founded in 1993; listed on the Swiss Stock Exchange (SIX: TEMN) • Market leading provider of banking software systems to retail, corporate, universal, private, Islamic, microfinance and community banks, wealth managers, and financial institutions • Headquartered in Geneva and with more than 59 offices worldwide • 1,500 customer deployments in more than 140 countries across the world.

Page 4: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Objective view

Goals

*

Avoid bigotry

Real world usage of Hypermedia

Levels of Hypermedia and advantages

Propose and review REST DSLs Tips & advice

New ideas

Page 5: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

What is a Hypermedia API?

*

Page 6: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Whats Hype?

*

Page 7: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Whats Hype?

Page 8: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Hypermedia APIs - Innovation trigger?

*

?

Page 9: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Hypermedia APIs – Enlightenment; productivity?

*

?

Page 10: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Hypermedia API’s Inflated expectations?

*

?

Page 11: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Hypermedia APIs - Trough of disillusionment?

*

?

Page 12: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Where are Hypermedia APIs?

*

Page 13: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

• Prevent breakage • Enabling discoverability • Standardising API clients

So .. this all just Hype?

Page 14: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Is

just ‘The Web’

Hype?

Page 15: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)
Page 16: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

HTML Links

*

Page 17: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

The Chasm

*

L2 API’s

Hypermedia API’s

Page 18: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Why haven’t Hypermedia API’s taken off?

Page 19: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

The User

Page 20: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

The User..

Page 21: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

The User..

Page 22: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

The Contract

Page 23: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

A Typical API Contract...

* *

Page 24: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Web Contract?

* *

●  Data ●  Hypermedia

Controls (links) ●  Presentation

Page 25: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Hypermedia Type for API’s

* *

Page 26: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

No Standardized Hypermedia Type

* *

Hypermedia Type Style Version

HTML Enrich 4.0.1

HTML Microformats Enrich

XML Enrich 1.1

ATOM Wrap RFC

HAL Enrich Draft

Collection-JSON Wrap Draft

Custom Media-Types

Page 27: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Limited Standard Link Relations

* *

Page 28: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

The Client

Page 29: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

A Client

Page 30: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Who leads who?

* *

Page 31: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

A User-Agent

* *

Page 32: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Hypermedia Maturity Levels

Page 33: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Hypermedia Maturity Levels

Glory of Hypermedia

Shared Vocabulary

Interaction Services

Data Services

Level 2

Page 34: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Level 2

*

• Defines entities at URIs w/ flat or CRUD type services

• No links between resources

• Projects / examples -  Twitter -  Many others

Page 35: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Data Services

*

•  Developers follow links before ultimately consuming a Data Service

•  API often still includes a version

•  Projects / examples -  OData -  PayPal API -  GitHub v3

Page 36: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Interaction Services

*

•  User-Agent let’s user follow links

•  Available options and state are described through links

•  Projects / examples -  IRIS -  Restbucks

* *

Page 37: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Shared Vocabulary

*

• Control navigation, state and presentation

• Use a well defined media type / shared vocabulary to control certain aspects of validation & rendering

• Projects / examples -  Restfulobjects, Apache ISIS -  Hydra, ALPS

Page 38: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Glory of Hypermedia

• Puts the user in total control

• Very well established; slowly changing media types

• Projects / examples -  HTML5 -  World Wide Web

Page 39: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Some Examples...

Page 40: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)
Page 41: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

•  Pragmatic

-  ‘Practically ReSTful API’s’

•  Human & Machine Friendly •  Reusable Patterns

-  Resource Types -  Traits

•  Open

Why?

http://raml.org/

Page 42: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

What?

Page 43: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Demo

Page 44: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

1.  Design/Build your API

2.  Document/Explore your API

3.  Client/Server Contract for your API

Demo

Page 45: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Resource Interaction Model (RIM)

Page 46: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

• Of Interaction Framework (Hypermedia Server)… - Reduce or eliminate client / server coupling - Put the user in control (Object, Action) - Reduce UI integration effort through mashup layer

Temenos Interaction Framework

*

Page 47: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Temenos is donating a Java based Hypermedia Server to the Open Source Communityhttp://temenostech.temenos.com/

https://github.com/temenostech/IRIS

A project called IRIS; it has three main goals:

1.  To create web based services according to RESTful constraints

2.  Aggregate / mashup multiple resource managers into a single interaction service

3.  Provide a language to describe the interactions between these resources

Hypermedia Server

Page 48: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

*

• RIM language / example -  Conditional links -  Link relations -  Auto transitions -  Workflow

• HAL Browser

Resource Interaction Model (RIM)

Page 49: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

RIM Demo

Page 50: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Summary

Page 51: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

•  Who do you want to be in control? •  Human end user? •  More adaptive client.

•  MediaType Selection •  Hypermedia controls •  Enrich with links vs. wrap

•  There is value in just using links. -  Whatever maturity level you use.

Summary

*

Page 52: Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)

Thank You!