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

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!