SlideShare a Scribd company logo
HYPERMEDIA

cannot be the engine
HYPERMEDIA

cannot be the engine
Ruben Verborgh

Ghent University – iMinds
“REST APIS MUST BE

HYPERTEXT-DRIVEN.”
Roy T. Fielding
HYPERMEDIA

cannot be the engine
Hypermedia Heaven & Hell
Self-descriptive Salvation
Angels of Affordance
REST “REDUCES COUPLING”.
WS-*/ESB
RPC over HTTP
RESTful HTTP
Deg
Loo
Tigh
Des
Discovery
Identification
Binding
Platform
Interaction
Interface
Orientation Interface
Orientation
Model
Granularity
State
Evolution
Generated
Code
Generated
Code
Conversation
Discovery
Identification
Binding
Platform
Interaction
Model
Granularity
State
Evolution
Conversation
(a) RESTful HTTP (b) RPC over HTTP
Figure 3: Measuring the degree of coupling implied by different W
RESTful HTTP RPC over HTTP
REST RPC
C. Pautasso & E. Wilde, “Why is the Web Loosely Coupled? A Multi-Faceted Metric for Service Design”
REST HAS

A UNIFORM INTERFACE.
resources
representations
self-descriptiveness
hypermedia
RESOURCES
identify resources, not actions
resources are cacheable
REPRESENTATIONS
share identifiers across systems
different needs,

different representations
SELF-DESCRIPTIVENESS
no external documentation
clients interpret representations
HYPERMEDIA
no hard-coded URLs
retrieve a resource,
follow links
SO FAR

FROM HEAVEN
so close

to hell.
DOES SELF-DESCRIPTIVENESS
REDUCE COUPLING?
YES.
only the message itself

is needed for interpretation
“in-band”
DOES SELF-DESCRIPTIVENESS
REDUCE COUPLING?
NO.
REST APIs rely on media types.
“in-band”??
SO YOU UNDERSTAND JSON?
application/alto-costmap+json
application/alto-costmapfilter+json
application/alto-directory+json
application/alto-endpointprop+json
application/alto-endpointpropparams+json
application/alto-endpointcost+json
application/alto-endpointcostparams+json
application/alto-error+json
application/alto-networkmapfilter+json
application/alto-networkmap+json
application/jrd+json
application/json
application/json-patch+json
application/ld+json
application/reputon+json
application/vcard+json
application/vnd.api+json
application/vnd.bekitzur-stech+json
application/vnd.collection.doc+json
application/vnd.collection+json
application/vnd.collection.next+json
application/vnd.document+json
application/vnd.hal+json
application/vnd.heroku+json
application/vnd.oftn.l10n+json
application/vnd.siren+json
application/vnd.xacml+json
DOES SELF-DESCRIPTIVENESS
REDUCE COUPLING?
Clients can interpret the message

using only in-band information…
…if they understand

the media type…
…which is out-of-band.
DOES HYPERMEDIA
REDUCE COUPLING?
In each representation,
the server includes links
towards other resources.
DOES HYPERMEDIA
REDUCE COUPLING?
YES.
Clients don’t hard-code

a server’s URLs.
Clients don’t hard-code

the path to information.
DOES HYPERMEDIA
REDUCE COUPLING?
In each representation,
the server includes links
towards other resources.
NO.
How can the server know
what links its clients need?
DOES HYPERMEDIA
REDUCE COUPLING?
The server sends you an image.
Scale it.

Crop it.
But you want to do something else.
Black & white.

Make profile pic.
HYPERMEDIA

cannot be the engine
media type coupling
affordance coupling
HYPERMEDIA

cannot be the engine
Hypermedia Heaven & Hell
Self-descriptive Salvation
Angels of Affordance
ENOUGH WITH THE

MEDIA TYPES ALREADY.
CHOOSE A SELF-DESCRIPTIVE

MEDIA TYPE.
JSON is just JSON.
“image” likely has

a hundred meanings.
CHOOSE A SELF-DESCRIPTIVE

MEDIA TYPE.
JSON-LD is self-descriptive.
“image” is actually a URL.
Clients can look it up.
CHOOSE A SELF-DESCRIPTIVE

MEDIA TYPE.
The client still has to

understand this media type.
But it’s not task-

or application-specific.
ADD SELF-DESCRIPTIVE

HYPERMEDIA CONTROLS.
<form>
<label>Person:</label>
<input name=“person” />
</form>
What does this do?
ADD SELF-DESCRIPTIVE

HYPERMEDIA CONTROLS.
Hydra
inside JSON-LD response
relate controls

to data properties
DESCRIBE THE

API BEFOREHAND.
in a hypermedia-based way
describe the links
(imageA) —B&W—> (imageB)
DESCRIBE THE

API BEFOREHAND.
in a resource-based way
describe the functionality
(imageA) ——> (imageB&W)
HYPERMEDIA

cannot be the engine
Hypermedia Heaven & Hell
Self-descriptive Salvation
Angels of Affordance
HYPERMEDIA RESPONSES SHOULD
AFFORD GOING TO NEXT STEPS.
Server: Here’s an image.
Client: Thanks. I want to scale it.
Server: I thought you would,
so I included a link.
HYPERMEDIA RESPONSES SHOULD
AFFORD GOING TO NEXT STEPS.
Client: Now use it as my

Facebook profile picture.
Server: Err…

why would you want to do that?
IT’S HARD TO IMAGINE ALL WAYS

IN WHICH CLIENTS USE YOUR API.
IMPOSSIBLE
SELF-DESCRIPTIVENESS

GIVES THEM A CHOICE.
COMBINE SELF-DESCRIPTIVENESS

OF AN API’S RESPONSES…
…WITH SELF-DESCRIPTIVENESS

OF AN API’S FUNCTIONALITY
“This is a photo

of Ellen.”
“This API takes an image,

returns a black & white version.”
…TO COMPLETE THE INTERACTION

THAT HYPERMEDIA COULDN’T.
HYPERMEDIA
can be the engine
of a single API.
HYPERMEDIA
cannot the engine
of cross-API interactions.
BUILDING API
DESCRIPTIONS
is thinking about Web APIs
on a Web scale.

More Related Content

What's hot (20)

PDF
Reasoned SPARQL
Ruben Verborgh
 
PDF
DBpedia's Triple Pattern Fragments
Ruben Verborgh
 
PDF
The Lonesome LOD Cloud
Ruben Verborgh
 
PDF
Linked Data Fragments
Ruben Verborgh
 
PDF
Building materialised views for linked data systems using microservices
Connected Data World
 
PDF
GraphQL and its schema as a universal layer for database access
Connected Data World
 
PDF
Linking media, data, and services
Ruben Verborgh
 
PDF
schema.org, Linked Data's Gateway Drug
Connected Data World
 
PDF
Querying federations 
of Triple Pattern Fragments
Ruben Verborgh
 
PDF
Explicit Semantics in Graph DBs Driving Digital Transformation With Neo4j
Connected Data World
 
PPTX
Adding Rules on Existing Hypermedia APIs
Michael Petychakis
 
PPTX
Introduction to Linked Data 1/5
Juan Sequeda
 
PPT
RESTful JSON web databases
kriszyp
 
ODT
Rest With Json Vs Soap With Xml
Kaniska Mandal
 
PPTX
RDFa Semantic Web
Rob Paok
 
PDF
Open Data and Web API
Sammy Fung
 
PPTX
Building Self Documenting HTTP APIs with CQRS
Derek Comartin
 
PPTX
Consuming Linked Data 4/5 Semtech2011
Juan Sequeda
 
PDF
FIWARE Global Summit - NGSI-LD: Modelling, Linking and Utilizing Context Info...
FIWARE
 
PPTX
Creating 3rd Generation Web APIs with Hydra
Markus Lanthaler
 
Reasoned SPARQL
Ruben Verborgh
 
DBpedia's Triple Pattern Fragments
Ruben Verborgh
 
The Lonesome LOD Cloud
Ruben Verborgh
 
Linked Data Fragments
Ruben Verborgh
 
Building materialised views for linked data systems using microservices
Connected Data World
 
GraphQL and its schema as a universal layer for database access
Connected Data World
 
Linking media, data, and services
Ruben Verborgh
 
schema.org, Linked Data's Gateway Drug
Connected Data World
 
Querying federations 
of Triple Pattern Fragments
Ruben Verborgh
 
Explicit Semantics in Graph DBs Driving Digital Transformation With Neo4j
Connected Data World
 
Adding Rules on Existing Hypermedia APIs
Michael Petychakis
 
Introduction to Linked Data 1/5
Juan Sequeda
 
RESTful JSON web databases
kriszyp
 
Rest With Json Vs Soap With Xml
Kaniska Mandal
 
RDFa Semantic Web
Rob Paok
 
Open Data and Web API
Sammy Fung
 
Building Self Documenting HTTP APIs with CQRS
Derek Comartin
 
Consuming Linked Data 4/5 Semtech2011
Juan Sequeda
 
FIWARE Global Summit - NGSI-LD: Modelling, Linking and Utilizing Context Info...
FIWARE
 
Creating 3rd Generation Web APIs with Hydra
Markus Lanthaler
 

Similar to Hypermedia Cannot be the Engine (20)

PPTX
Representational State Transfer
Alexei Skachykhin
 
PPTX
JAX-RS. Developing RESTful APIs with Java
Jerry Kurian
 
PPTX
How RESTful Is Your REST?
Abdelmonaim Remani
 
PDF
Introduction to REST and Jersey
Chris Winters
 
PDF
The Glory of Rest
Sławomir Chrobak
 
PDF
-overview of res tful architecture-2
JunHwan Huh
 
PPTX
REST Architecture with use case and example
Shailesh singh
 
PPTX
REST Architecture with use case and example
Shailesh singh
 
PDF
Together Cheerfully to Walk with Hypermedia
Vladimir Tsukur
 
PPT
Treinamento 1
Carlos Melo
 
PPTX
Introduction to Hydra
Alejandro Inestal
 
PPT
Rest introduction
William Martinez Pomares
 
PPT
Modified REST Presentation
Alexandros Marinos
 
PDF
Creating Restful Web Services with restish
Grig Gheorghiu
 
PDF
Distributed affordance: An Open-World Assumption for Hypermedia
ruyalarcon
 
PDF
David Gómez G. - Hypermedia APIs for headless platforms and Data Integration ...
Codemotion
 
PDF
Cdm mil-18 - hypermedia ap is for headless platforms and data integration
David Gómez García
 
PDF
REST Fest 2012: HATEOAS Your Cake and Eat It Too
Elastic Path
 
PDF
WordCamp Wilmington 2017 WP-API Why?
Evan Mullins
 
PPT
A Common API & UI for Building Next Generation Identity Services
ForgeRock
 
Representational State Transfer
Alexei Skachykhin
 
JAX-RS. Developing RESTful APIs with Java
Jerry Kurian
 
How RESTful Is Your REST?
Abdelmonaim Remani
 
Introduction to REST and Jersey
Chris Winters
 
The Glory of Rest
Sławomir Chrobak
 
-overview of res tful architecture-2
JunHwan Huh
 
REST Architecture with use case and example
Shailesh singh
 
REST Architecture with use case and example
Shailesh singh
 
Together Cheerfully to Walk with Hypermedia
Vladimir Tsukur
 
Treinamento 1
Carlos Melo
 
Introduction to Hydra
Alejandro Inestal
 
Rest introduction
William Martinez Pomares
 
Modified REST Presentation
Alexandros Marinos
 
Creating Restful Web Services with restish
Grig Gheorghiu
 
Distributed affordance: An Open-World Assumption for Hypermedia
ruyalarcon
 
David Gómez G. - Hypermedia APIs for headless platforms and Data Integration ...
Codemotion
 
Cdm mil-18 - hypermedia ap is for headless platforms and data integration
David Gómez García
 
REST Fest 2012: HATEOAS Your Cake and Eat It Too
Elastic Path
 
WordCamp Wilmington 2017 WP-API Why?
Evan Mullins
 
A Common API & UI for Building Next Generation Identity Services
ForgeRock
 
Ad

Recently uploaded (20)

PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
Python basic programing language for automation
DanialHabibi2
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Ad

Hypermedia Cannot be the Engine