Are hypermedia API's Just Hype?

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

Transcript of Are hypermedia API's Just Hype?

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!