Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)
-
Upload
jaxlondonconference -
Category
Technology
-
view
1.085 -
download
2
description
Transcript of Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)
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!