are hypermedia api's just hype?

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

Upload: daniel-feist

Post on 14-Jul-2015

323 views

Category:

Technology


1 download

TRANSCRIPT

Are

just

‘Hypermedia API’s’

Hype? Daniel Feist, MuleSoft Aaron Phethean, Temenos

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

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.

Objective view

Goals

*

Avoid bigotry

Real world usage of Hypermedia

Levels of Hypermedia and advantages

Propose and review REST DSLs Tips & advice

New ideas

What is a Hypermedia API?

*

Whats Hype?

*

Whats Hype?

Hypermedia APIs - Innovation trigger?

*

?

Hypermedia APIs – Enlightenment; productivity?

*

?

Hypermedia API’s Inflated expectations?

*

?

Hypermedia APIs - Trough of disillusionment?

*

?

Where are Hypermedia APIs?

*

• Prevent breakage • Enabling discoverability • Standardising API clients

So .. this all just Hype?

Is

just ‘The Web’

Hype?

HTML Links

*

The Chasm

*

L2 API’s

Hypermedia API’s

Why haven’t Hypermedia API’s taken off?

The User

The User..

The User..

The Contract

A Typical API Contract...

* *

Web Contract?

* *

●  Data ●  Hypermedia

Controls (links) ●  Presentation

Hypermedia Type for API’s

* *

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

Limited Standard Link Relations

* *

The Client

A Client

Who leads who?

* *

A User-Agent

* *

Hypermedia Maturity Levels

Hypermedia Maturity Levels

Glory of Hypermedia

Shared Vocabulary

Interaction Services

Data Services

Level 2

Level 2

*

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

• No links between resources

• Projects / examples -  Twitter -  Many others

Data Services

*

•  Developers follow links before ultimately consuming a Data Service

•  API often still includes a version

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

Interaction Services

*

•  User-Agent let’s user follow links

•  Available options and state are described through links

•  Projects / examples -  IRIS -  Restbucks

* *

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

Glory of Hypermedia

• Puts the user in total control

• Very well established; slowly changing media types

• Projects / examples -  HTML5 -  World Wide Web

Some Examples...

•  Pragmatic

-  ‘Practically ReSTful API’s’

•  Human & Machine Friendly •  Reusable Patterns

-  Resource Types -  Traits

•  Open

Why?

http://raml.org/

What?

Demo

1.  Design/Build your API

2.  Document/Explore your API

3.  Client/Server Contract for your API

Demo

Resource Interaction Model (RIM)

• 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

*

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

*

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

• HAL Browser

Resource Interaction Model (RIM)

RIM Demo

Summary

•  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

*

Thank You!