SlideShare a Scribd company logo
1 of 20
HATEOAS APIS
Matt Bishop, Product Architect at Elastic Path
@MattBishopL3
Growth of APIs, How Exciting!
www.elasticpath.com @MattBishopL3
 Actually, it’s more like 14,000
 1 minute per API = 6 weeks end-to-end
www.elasticpath.com @MattBishopL3
REST beats SOAP, How
Exciting!
www.elasticpath.com @MattBishopL3
Growth of Internet Hostnames
www.elasticpath.com @MattBishopL3
What happened in the 90s?
 1989 HTML invented (thanks Tim!)
 1992 First browsers built
 1994 Netscape launched
 1995 Internet Explorer in Win95, IIS bundled in
NT, Apache, PHP released
www.elasticpath.com @MattBishopL3
Internet Host Names In A Line
www.elasticpath.com @MattBishopL3
Make a Website, 1995-style
 Web sites were coded in:
• Java
• C / C++
• Perl
• ColdFusion
• Python
www.elasticpath.com @MattBishopL3
Templates Blew the Doors off the
Internet
 Late 90s Microsoft ASP, Apache JSP,
DreamWeaver, Velocity, etc.
 Templates opened internet development to the
common man
 Templates made data BROWSABLE
www.elasticpath.com @MattBishopL3
Templates made data browsable
 Made linking easy
 <asp:HyperLink …
 <a href=“<%= getLink
(somedata) %>
 Easy linking means
easy browsability
 Drives the Network
Effect
www.elasticpath.com @MattBishopL3
APIs are stuck in the 80s
 …1987, to be exact (28,174 hosts)
 APIs must be browsable before they can be
adopted by 100m organizations
 100m organizations == your sister’s dress
store, my mom’s knitting club
www.elasticpath.com @MattBishopL3
Comfortably Numb
We can stay stuck here if we
don’t link our resources
together
www.elasticpath.com @MattBishopL3
Links are about Relationships
 Relationships are hard
www.elasticpath.com @MattBishopL3
Relationships are not hard after
all
• Relationships are a fundamental part of being
an animal
www.elasticpath.com @MattBishopL3
Relationships make Versionless
APIs possible
 Relationships are very stable
 The resources themselves move, but their
relationships do not
 GET /profiles/id
• “addresses”: “/profiles/id/addresses”
? Hmm maybe addresses should be their own
resource ?
GET /profiles/id
• “addresses”: “/addresses”
www.elasticpath.com @MattBishopL3
Relationships make APIs
browsable
 Browsable APIs == Browsable data == mass
adoption
 First step is to make it easy to link
www.elasticpath.com @MattBishopL3
Cortex API Engine
 Elastic Path’s API endeavors have failed four
times
 2010 drank the HATEOAS Kool-Aid, reset our API
effort
 Found no frameworks to help past URI-to-method
mapping and ser/deser
 We built an engine using some existing
technology (Jax-RS, Spring, Shiro) and our own
work
 Cortex is an API engine that happens to run
www.elasticpath.com @MattBishopL3
Cortex Design Philosophy
• Small, simple resources written by BAs
• Small, simple state changes via controls
• Form
• Selector
• “Secret Admirer” rule
• All Operations are identified
• REST is the Gestalt, HTTP is a transport
www.elasticpath.com @MattBishopL3

More Related Content

What's hot

Building your first Native iOs App with an API Backend
Building your first Native iOs App with an API BackendBuilding your first Native iOs App with an API Backend
Building your first Native iOs App with an API Backend
Apigee | Google Cloud
 
Let’s write a plugin
Let’s write a pluginLet’s write a plugin
Let’s write a plugin
Brian Layman
 

What's hot (18)

Functions.php - It's Not Just For Developers
Functions.php - It's Not Just For DevelopersFunctions.php - It's Not Just For Developers
Functions.php - It's Not Just For Developers
 
Building performant web apps
Building performant web appsBuilding performant web apps
Building performant web apps
 
MLH LI Hacks
MLH LI HacksMLH LI Hacks
MLH LI Hacks
 
APIdays Paris 2018 - An API Is Not Enough: Crafting a Developer Experience Ad...
APIdays Paris 2018 - An API Is Not Enough: Crafting a Developer Experience Ad...APIdays Paris 2018 - An API Is Not Enough: Crafting a Developer Experience Ad...
APIdays Paris 2018 - An API Is Not Enough: Crafting a Developer Experience Ad...
 
The Battle For The Body Field
The Battle For The Body FieldThe Battle For The Body Field
The Battle For The Body Field
 
Building your first Native iOs App with an API Backend
Building your first Native iOs App with an API BackendBuilding your first Native iOs App with an API Backend
Building your first Native iOs App with an API Backend
 
Battle for the Body Field (DrupalCon)
Battle for the Body Field (DrupalCon)Battle for the Body Field (DrupalCon)
Battle for the Body Field (DrupalCon)
 
How Being Hacked Turned Out to be the Best Thing That Ever Happened to Me
How Being Hacked Turned Out to be the Best Thing That Ever Happened to MeHow Being Hacked Turned Out to be the Best Thing That Ever Happened to Me
How Being Hacked Turned Out to be the Best Thing That Ever Happened to Me
 
WordPress as a Storytelling Tool — WordCamp Toronto 2015
WordPress as a Storytelling Tool — WordCamp Toronto 2015WordPress as a Storytelling Tool — WordCamp Toronto 2015
WordPress as a Storytelling Tool — WordCamp Toronto 2015
 
WordPress Hooks (Actions & Filters)
WordPress Hooks (Actions & Filters)WordPress Hooks (Actions & Filters)
WordPress Hooks (Actions & Filters)
 
Finding Anything: Real-time Search with IndexTank
Finding Anything:  Real-time Search with IndexTankFinding Anything:  Real-time Search with IndexTank
Finding Anything: Real-time Search with IndexTank
 
pp_api: PyDays
pp_api: PyDayspp_api: PyDays
pp_api: PyDays
 
2 Seconds is the New Slow - Chris Simmance - under2
2 Seconds is the New Slow -  Chris Simmance - under22 Seconds is the New Slow -  Chris Simmance - under2
2 Seconds is the New Slow - Chris Simmance - under2
 
Drupal & Summon: Keeping Article Discovery in the Library
Drupal & Summon: Keeping Article Discovery in the LibraryDrupal & Summon: Keeping Article Discovery in the Library
Drupal & Summon: Keeping Article Discovery in the Library
 
Savingsources
SavingsourcesSavingsources
Savingsources
 
Let’s write a plugin
Let’s write a pluginLet’s write a plugin
Let’s write a plugin
 
Recon and Bug Bounties - What a great love story!
Recon and Bug Bounties - What a great love story!Recon and Bug Bounties - What a great love story!
Recon and Bug Bounties - What a great love story!
 
Accessibility: It's never been easier to achieve -- and never more important
Accessibility: It's never been easier to achieve -- and never more importantAccessibility: It's never been easier to achieve -- and never more important
Accessibility: It's never been easier to achieve -- and never more important
 

Similar to Hateoas APIs are about relationships

Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
jward5519
 
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
jward5519
 

Similar to Hateoas APIs are about relationships (20)

Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
 
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
 
The Next Five Years of Rails
The Next Five Years of RailsThe Next Five Years of Rails
The Next Five Years of Rails
 
Introducing Placemaker
Introducing PlacemakerIntroducing Placemaker
Introducing Placemaker
 
Build APIs With Kapow Mashup Server
Build APIs With Kapow Mashup ServerBuild APIs With Kapow Mashup Server
Build APIs With Kapow Mashup Server
 
Rails Vs CakePHP
Rails Vs CakePHPRails Vs CakePHP
Rails Vs CakePHP
 
WordCamp Birmingham 2016 - WP API, What is it good for? Absolutely Everything!
WordCamp Birmingham 2016 - WP API, What is it good for? Absolutely Everything!WordCamp Birmingham 2016 - WP API, What is it good for? Absolutely Everything!
WordCamp Birmingham 2016 - WP API, What is it good for? Absolutely Everything!
 
DVC202_The Open Guide to AWS
DVC202_The Open Guide to AWSDVC202_The Open Guide to AWS
DVC202_The Open Guide to AWS
 
NPR API: Create Once Publish Everywhere
NPR API: Create Once Publish EverywhereNPR API: Create Once Publish Everywhere
NPR API: Create Once Publish Everywhere
 
Building Usable REST APIs. By Javier Ramirez, teowaki. FOWA London
Building Usable REST APIs. By Javier Ramirez, teowaki. FOWA LondonBuilding Usable REST APIs. By Javier Ramirez, teowaki. FOWA London
Building Usable REST APIs. By Javier Ramirez, teowaki. FOWA London
 
Writing Usable REST APIs. Javier Ramirez
Writing Usable REST APIs. Javier RamirezWriting Usable REST APIs. Javier Ramirez
Writing Usable REST APIs. Javier Ramirez
 
Big data and APIs for PHP developers - SXSW 2011
Big data and APIs for PHP developers - SXSW 2011Big data and APIs for PHP developers - SXSW 2011
Big data and APIs for PHP developers - SXSW 2011
 
Building a modern data platform on AWS. Utrecht AWS Dev Day
Building a modern data platform on AWS. Utrecht AWS Dev DayBuilding a modern data platform on AWS. Utrecht AWS Dev Day
Building a modern data platform on AWS. Utrecht AWS Dev Day
 
Web API Design
Web API DesignWeb API Design
Web API Design
 
Web API Design: Crafting Interfaces that Developers Love
Web API Design:  Crafting Interfaces that Developers LoveWeb API Design:  Crafting Interfaces that Developers Love
Web API Design: Crafting Interfaces that Developers Love
 
Ebook undisturbed rest-v1 [res_tful apis]
Ebook undisturbed rest-v1 [res_tful apis]Ebook undisturbed rest-v1 [res_tful apis]
Ebook undisturbed rest-v1 [res_tful apis]
 
Flickr Services
Flickr ServicesFlickr Services
Flickr Services
 
Flickr Services
Flickr ServicesFlickr Services
Flickr Services
 
zendframework2 restful
zendframework2 restfulzendframework2 restful
zendframework2 restful
 
Building A Great API - Evan Cooke, Cloudstock, December 2010
Building A Great API - Evan Cooke, Cloudstock, December 2010Building A Great API - Evan Cooke, Cloudstock, December 2010
Building A Great API - Evan Cooke, Cloudstock, December 2010
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Recently uploaded (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Hateoas APIs are about relationships

  • 1. HATEOAS APIS Matt Bishop, Product Architect at Elastic Path @MattBishopL3
  • 2. Growth of APIs, How Exciting! www.elasticpath.com @MattBishopL3
  • 3.  Actually, it’s more like 14,000  1 minute per API = 6 weeks end-to-end www.elasticpath.com @MattBishopL3
  • 4. REST beats SOAP, How Exciting! www.elasticpath.com @MattBishopL3
  • 5. Growth of Internet Hostnames www.elasticpath.com @MattBishopL3
  • 6. What happened in the 90s?  1989 HTML invented (thanks Tim!)  1992 First browsers built  1994 Netscape launched  1995 Internet Explorer in Win95, IIS bundled in NT, Apache, PHP released www.elasticpath.com @MattBishopL3
  • 7. Internet Host Names In A Line www.elasticpath.com @MattBishopL3
  • 8. Make a Website, 1995-style  Web sites were coded in: • Java • C / C++ • Perl • ColdFusion • Python www.elasticpath.com @MattBishopL3
  • 9. Templates Blew the Doors off the Internet  Late 90s Microsoft ASP, Apache JSP, DreamWeaver, Velocity, etc.  Templates opened internet development to the common man  Templates made data BROWSABLE www.elasticpath.com @MattBishopL3
  • 10. Templates made data browsable  Made linking easy  <asp:HyperLink …  <a href=“<%= getLink (somedata) %>  Easy linking means easy browsability  Drives the Network Effect www.elasticpath.com @MattBishopL3
  • 11. APIs are stuck in the 80s  …1987, to be exact (28,174 hosts)  APIs must be browsable before they can be adopted by 100m organizations  100m organizations == your sister’s dress store, my mom’s knitting club www.elasticpath.com @MattBishopL3
  • 12. Comfortably Numb We can stay stuck here if we don’t link our resources together www.elasticpath.com @MattBishopL3
  • 13. Links are about Relationships  Relationships are hard www.elasticpath.com @MattBishopL3
  • 14.
  • 15.
  • 16. Relationships are not hard after all • Relationships are a fundamental part of being an animal www.elasticpath.com @MattBishopL3
  • 17. Relationships make Versionless APIs possible  Relationships are very stable  The resources themselves move, but their relationships do not  GET /profiles/id • “addresses”: “/profiles/id/addresses” ? Hmm maybe addresses should be their own resource ? GET /profiles/id • “addresses”: “/addresses” www.elasticpath.com @MattBishopL3
  • 18. Relationships make APIs browsable  Browsable APIs == Browsable data == mass adoption  First step is to make it easy to link www.elasticpath.com @MattBishopL3
  • 19. Cortex API Engine  Elastic Path’s API endeavors have failed four times  2010 drank the HATEOAS Kool-Aid, reset our API effort  Found no frameworks to help past URI-to-method mapping and ser/deser  We built an engine using some existing technology (Jax-RS, Spring, Shiro) and our own work  Cortex is an API engine that happens to run www.elasticpath.com @MattBishopL3
  • 20. Cortex Design Philosophy • Small, simple resources written by BAs • Small, simple state changes via controls • Form • Selector • “Secret Admirer” rule • All Operations are identified • REST is the Gestalt, HTTP is a transport www.elasticpath.com @MattBishopL3