Are

‘Hypermedia
API’s’
just
Daniel Feist, MuleSoft
Aaron Phethean, Temenos

Hype?
Introductions

●  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

All contents Copyright © 2013, MuleSoft Inc.

Daniel Feist,
Principal Architect
@dfeist

*
Introductions

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.

All contents Copyright © 2013, MuleSoft Inc.

*
Goals

Levels of Hypermedia and advantages

Objective view

Avoid bigotry

New ideas
Propose and review REST DSLs

Tips & advice

Real world usage of Hypermedia
*
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?

*
So .. this all just Hype?

• Prevent breakage
• Enabling discoverability
• Standardising API clients
Is

‘The Web’
just

Hype?
HTML Links

*
The Chasm

Hypermedia
API’s
L2 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...
Why?
•  Pragmatic
-  ‘Practically ReSTful API’s’

•  Human & Machine Friendly
•  Reusable Patterns
-  Resource Types
-  Traits

•  Open
http://raml.org/
What?
Demo
Demo

1.  Design/Build your API
2.  Document/Explore your API
3.  Client/Server Contract for your API
Resource Interaction Model
(RIM)
Temenos Interaction Framework

• 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

*
Hypermedia Server

Temenos is donating a Java based
Hypermedia Server to the Open
Source Community
http://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
Resource Interaction Model (RIM)

• RIM language / example
- 
- 
- 
- 

Conditional links
Link relations
Auto transitions
Workflow

• HAL Browser

*
RIM Demo
Summary
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.
*
Thank You!

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