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 API's Just Hype?
Are hypermedia API's Just Hype?
Upcoming SlideShare
Loading in …5
×

Are hypermedia API's Just Hype?

575 views
459 views

Published on

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

No Downloads
Views
Total views
575
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Are hypermedia API's Just Hype?

  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!

×