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 in...
Introductions

Aaron Phethean
Product Manager
@aphethean
• Founded in 1993; listed on the Swiss Stock Exchange (SIX: TEMN)...
Goals

Levels of Hypermedia and advantages

Objective view

Avoid bigotry

New ideas
Propose and review REST DSLs

Tips & ...
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

Enr...
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
-  Tw...
Data Services

•  Developers follow links before
ultimately consuming a Data Service
•  API often still includes a version...
Interaction Services

•  User-Agent let’s user follow links
•  Available options and state are
described through links

*
...
Shared Vocabulary

• Control navigation, state and
presentation
• Use a well defined media type /
shared vocabulary to con...
Glory of Hypermedia

• Puts the user in total control
• Very well established; slowly
changing media types
• Projects / ex...
Some Examples...
Why?
•  Pragmatic
-  ‘Practically ReSTful API’s’

•  Human & Machine Friendly
•  Reusable Patterns
-  Resource Types
-  Tr...
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 coupl...
Hypermedia Server

Temenos is donating a Java based
Hypermedia Server to the Open
Source Community
http://temenostech.teme...
Resource Interaction Model (RIM)

• RIM language / example
- 
- 
- 
- 

Conditional links
Link relations
Auto transitions
...
RIM Demo
Summary
Summary

•  Who do you want to be in control?
•  Human end user?
•  More adaptive client.

•  MediaType Selection
•  Hyper...
Thank You!
Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)
Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (MuleSoft)
Upcoming SlideShare
Loading in...5
×

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

1,147

Published on

Presented at JAX London 2013

Hypermedia or HATEOAS APIs get a lot of air cover but there aren't many of them in the wild. This session will summarize the challenges that exist when building hypermedia REST API’s and explain why it’s worth it. We’ll take a comparative look at various different approaches for using hypermedia in a typical REST API, before taking a closer look at an approach that automatically generates links from a semantically rich API definition.

Published in: Technology, Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,147
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
17
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

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

  1. 1. Are ‘Hypermedia API’s’ just Daniel Feist, MuleSoft Aaron Phethean, Temenos Hype?
  2. 2. 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 *
  3. 3. 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. *
  4. 4. Goals Levels of Hypermedia and advantages Objective view Avoid bigotry New ideas Propose and review REST DSLs Tips & advice Real world usage of Hypermedia *
  5. 5. What is a Hypermedia API? *
  6. 6. Whats Hype? *
  7. 7. Whats Hype?
  8. 8. Hypermedia APIs - Innovation trigger? ? *
  9. 9. Hypermedia APIs – Enlightenment; productivity? ? *
  10. 10. Hypermedia API’s Inflated expectations? ? *
  11. 11. Hypermedia APIs - Trough of disillusionment? ? *
  12. 12. Where are Hypermedia APIs? *
  13. 13. So .. this all just Hype? • Prevent breakage • Enabling discoverability • Standardising API clients
  14. 14. Is ‘The Web’ just Hype?
  15. 15. HTML Links *
  16. 16. The Chasm Hypermedia API’s L2 API’s *
  17. 17. Why haven’t Hypermedia API’s taken off?
  18. 18. The User
  19. 19. The User..
  20. 20. The User..
  21. 21. The Contract
  22. 22. A Typical API Contract... *
  23. 23. Web Contract? ●  Data ●  Hypermedia Controls (links) ●  Presentation *
  24. 24. Hypermedia Type for API’s *
  25. 25. 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 *
  26. 26. Limited Standard Link Relations *
  27. 27. The Client
  28. 28. A Client
  29. 29. Who leads who? *
  30. 30. A User-Agent *
  31. 31. Hypermedia Maturity Levels
  32. 32. Hypermedia Maturity Levels Glory of Hypermedia Shared Vocabulary Interaction Services Data Services Level 2
  33. 33. Level 2 • Defines entities at URIs w/ flat or CRUD type services • No links between resources • Projects / examples -  Twitter -  Many others *
  34. 34. Data Services •  Developers follow links before ultimately consuming a Data Service •  API often still includes a version •  Projects / examples -  OData -  -  PayPal API GitHub v3 *
  35. 35. Interaction Services •  User-Agent let’s user follow links •  Available options and state are described through links * •  Projects / examples -  -  IRIS Restbucks *
  36. 36. 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 *
  37. 37. Glory of Hypermedia • Puts the user in total control • Very well established; slowly changing media types • Projects / examples -  HTML5 -  World Wide Web
  38. 38. Some Examples...
  39. 39. Why? •  Pragmatic -  ‘Practically ReSTful API’s’ •  Human & Machine Friendly •  Reusable Patterns -  Resource Types -  Traits •  Open http://raml.org/
  40. 40. What?
  41. 41. Demo
  42. 42. Demo 1.  Design/Build your API 2.  Document/Explore your API 3.  Client/Server Contract for your API
  43. 43. Resource Interaction Model (RIM)
  44. 44. 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 *
  45. 45. 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
  46. 46. Resource Interaction Model (RIM) • RIM language / example -  -  -  -  Conditional links Link relations Auto transitions Workflow • HAL Browser *
  47. 47. RIM Demo
  48. 48. Summary
  49. 49. 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. *
  50. 50. Thank You!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×