SlideShare a Scribd company logo
SIMPLE

SERVERS
CLEVER

CLIENTS
Ruben Verborgh
Hypermedia APIs
that make sense
HOW DO WE
MEASURE
SUCCESS?
MY API IS GOOD

BECAUSE I USE SWAGGER.
YOUR API SUCKS

BECAUSE IT’S NOT REST.
MY API IS DOING HYPERMEDIA,

LIKE, FOR REAL.
MY WEBSITE IS GOOD

BECAUSE I USE FLASH.
YOUR WEBSITE SUCKS

BECAUSE THE MENU IS ON TOP.
MY WEBSITE REQUIRES ONLY

3 CLICKS TO ACCESS STUFF.
API DESIGN

IS STUCK WHERE
WEB INTERACTION DESIGN
WAS 15 YEARS AGO.
WEB INTERACTION DESIGN
IN 2015 IS MEASURABLE:

HOW LONG DOES IT TAKE

CUSTOMERS TO BUY

WHAT THEY WANT?
WEB INTERACTION DESIGN
IN 2015 IS MEASURABLE:

HOW OFTEN IS

OUR CONTENT SHARED

ON TWITTER?
HOW CAN WE

MEASURE WEB API
DESIGN DECISIONS?
HOW CAN WE

MEASURE WEB API
DESIGN DECISIONS?
www.docsduds.com
PUBLISHING

LINKED DATA
QUANTIFYING
WEB APIS
MAKING SENSE

WITH HYPERMEDIA
1
2
3
PUBLISHING

LINKED DATA
QUANTIFYING
WEB APIS
MAKING SENSE

WITH HYPERMEDIA
1
2
3
LINKED DATA

CAPTURES FACTS

WITH LINKS
http://dbpedia.org/

resource/Nikola_Tesla
http://dbpedia.org/

resource/Thomas_Edison
http://xmlns.com/foaf/

0.1/knows
“Nikola”
http://xmlns.com/foaf/

0.1/givenName
RDF
{
"@id": "dbpedia:Nikola_Tesla",
"foaf:knows": "dbpedia:Thomas_Edison",
"foaf:givenName": "Nikola"

JSON-LD
!
!
!
!
}
WIKIPEDIA IS

TRANSLATED INTO

500 MILLION

LINKED DATA FACTS.
IT CAN BE QUERIED

BY THE WEB’S

MOST POWERFUL API.
SPARQLQUERY LANGUAGE
?
?
?
SPARQL
WHICH FRENCH CITIES

HAVE A POPULATION OF

MORE THAN 200.000?
SPARQL
WHICH MOVIES WERE
DIRECTED BY WOMEN
WHO WROTE NOVELS?
SPARQL
SPARQL

WEB API
THE WEB API

IS THE SAME

AS THE LANGUAGE:

ASK ANYTHING
/SPARQL?QUERY=

WHICH FRENCH CITIES

HAVE A POPULATION OF

MORE THAN 200.000?
SPARQL
/SPARQL?QUERY=

WHICH MOVIES WERE
DIRECTED BY WOMEN
WHO WROTE NOVELS?
SPARQL
IT’S LIKE THE

GRAPHQL OF

LINKED DATA
WITHOUT MONEY
THE SPARQL API

IS SO POWERFUL THAT

THAT MOST ENDPOINTS
ARE DOWN

> 1.5 DAY EACH MONTH
THE SPARQL API

IS SO POWERFUL THAT

THAT MOST ENDPOINTS

ARE DOWN

> 1.5 DAY EACH MONTH
PUBLISHING

LINKED DATA
QUANTIFYING
WEB APIS
MAKING SENSE

WITH HYPERMEDIA
1
2
3
SPARQL

WEB API
LET’S MEASURE THE

S!
C

S!
C
!
C
!
C
!
C
!
C
!
C
!
C
EACH CLIENT SENDS

UNIQUE REQUESTS, SO

CACHING IS INEFFECTIVE
REQUESTS CAN BE

ARBITRARILY COMPLICATED
THE INTERFACE

IS EXPENSIVE
1 240 CLIENTS
SPARQL API
QUERIES

PER HOUR
100 200
SPARQL API
1 240 CLIENTS100 200
SERVER

CPU LOAD
SPARQL API
1 240 CLIENTS100 200
CLIENT

CPU LOAD
SPARQL API
1 240 CLIENTS100 200
CACHE

REUSE
WHO WILL PAY

FOR SUCH AN

EXPENSIVE API?
PUBLISHING

LINKED DATA
QUANTIFYING
WEB APIS
MAKING SENSE

WITH HYPERMEDIA
1
2
3
WHAT IF WE MADE

A BETTER API?
GUESS WHAT?

THAT’S WHAT

EVERYBODY DOES!
2005 2010 2015

186

2,418

14,368
NUMBER

OF APIS
2005 2010 2015

186

2,418

14,368
NUMBER

OF CLIENTS
HOW CAN WE

THEN EXECUTE

UNIFORM QUERIES?
WE DON’T.
HOW CAN WE

THEN QUERY

MULTIPLE APIS?
WE CAN’T.
WHAT IF WE MADE

A SIMPLER API THAT
EXPLAINED ITSELF

WITH HYPERMEDIA?
“I DON’T DO
SERVER
”
“BUT I DO
SERVER
”
“SO IF I

WANT TO DO
CLIENT
”
“THEN I NEED

TO ASK YOU
CLIENT
”
“AND COMBINE IT

MYSELF INTO
CLIENT
”
CLIENTS STILL

ANSWER COMPLEX

SPARQL QUERIES,
JUST NOT WITH

THE SPARQL API
SERVER
TRIPLE PATTERN
FRAGMENTS API
SERVER CLIENT
SPARQL API
TPF API
(nothing)
SIMPLE

SERVER
CLEVER

CLIENT
TPF API
1 240 CLIENTS
SPARQL API
QUERIES

PER HOUR
TPF API
100 200
SPARQL API
TPF API
1 240 CLIENTS100 200
SERVER

CPU LOAD
SPARQL API
TPF API
1 240 CLIENTS100 200
CLIENT

CPU LOAD
SPARQL API
TPF API
1 240 CLIENTS100 200
CACHE

REUSE
RESPONSES CONTAIN
HYPERMEDIA CONTROLS
IN JSON-LD USING THE
HYDRA VOCABULARY
{
"@id": "http://fragments.dbpedia.org/2015/en#dataset",
"search": {
"template": "/2015/en{?subject,predicate,object}",
"mapping": [
{ "variable": "subject", "property": "rdf:subject" },
{ "variable": "predicate", "property": "rdf:predicate" },
{ "variable": "object", "property": "rdf:object" }
]
}
}
JSON-LD
I CAN DO
I CAN DO
I CAN DO
I CAN DO
2005 2010 2015

186

2,418

14,368
664,368
NUMBER

OF APIS
2005 2010 2015

186

2,418

14,368
NUMBER

OF CLIENTS

14,369
TRY A SIMPLE SERVER
AND A CLEVER CLIENT
data.linkeddatafragments.org
client.linkeddatafragments.org
PUBLISHING

LINKED DATA
QUANTIFYING
WEB APIS
MAKING SENSE

WITH HYPERMEDIA
1
2
3
WHEN DOES

A CLIENT TRULY
HAVE POWER?
IF IT SIMPLY

USES

CLEVER APIS?
IF IT CLEVERLY

USES

SIMPLE APIS?
IF YOU HAVE THE MONEY,

USE SPARQL OR GRAPHQL
INTELLIGENCE

IS EXPENSIVE
IF NOT, LET EACH CLIENT

USE ITS OWN CPU
I STOPPED THINKING

ABOUT WEB APIS

A LONG TIME AGO
I’M NOW THINKING

ABOUT WEB CLIENTS
AND WHEN I SAY WEB,

I MEAN HYPERMEDIA
I CAN’T MEASURE

HYPERMEDIA,
BUT I CAN MEASURE

CLIENTS DOING

THE SAME TASKS

ON DIFFERENT APIS
HYPERMEDIA LETS

A SERVER EXPLAIN

ITS API TO CLIENTS,
SO THEY CAN USE IT

IN MEASURABLY

DIFFERENT WAYS.
SIMPLE

SERVERS
CLEVER

CLIENTS
@RubenVerborgh
Hypermedia APIs
that make sense

More Related Content

PDF
Initial Usage Analysis of DBpedia's Triple Pattern Fragments
PDF
Reasoned SPARQL
PDF
Live DBpedia querying with high availability
PDF
Querying data on the Web – client or server?
PDF
The web – A hypermedia story
PDF
The Future is Federated
PDF
Querying datasets on the Web with high availability
PDF
DBpedia's Triple Pattern Fragments
Initial Usage Analysis of DBpedia's Triple Pattern Fragments
Reasoned SPARQL
Live DBpedia querying with high availability
Querying data on the Web – client or server?
The web – A hypermedia story
The Future is Federated
Querying datasets on the Web with high availability
DBpedia's Triple Pattern Fragments

What's hot (20)

PDF
Sustainable queryable access to Linked Data
PPTX
Demystifying Apache Spark
PDF
Querying federations 
of Triple Pattern Fragments
PDF
Nine Things we're Checking for a Mobile First Index by Nichola Stott in The I...
PDF
React & GraphQL
PPTX
Getting your hands on graphs
ZIP
The Power of Open Data
PDF
Introducing Placemaker
PDF
Introduction to GraphQL
PDF
Django Intro
PDF
Introduction to Django REST Framework
PPT
Leanna, Eleni and Raquel\'s URL Mini Assignment
PPT
eleni raquel and leannas URL mini assignment
PPT
raquel leanna eleni url mini assignment
PPTX
Big Data Week 2013 Flow
PPTX
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
PPTX
TechSEO Boost 2017: Making the Web Fast
PDF
Authentication, Authorization & Error Handling with GraphQL
PPTX
Using Competitive Gap Analyses to Discover Low-Hanging Fruit
PPTX
TechSEO Boost 2017: The State of Technical SEO
Sustainable queryable access to Linked Data
Demystifying Apache Spark
Querying federations 
of Triple Pattern Fragments
Nine Things we're Checking for a Mobile First Index by Nichola Stott in The I...
React & GraphQL
Getting your hands on graphs
The Power of Open Data
Introducing Placemaker
Introduction to GraphQL
Django Intro
Introduction to Django REST Framework
Leanna, Eleni and Raquel\'s URL Mini Assignment
eleni raquel and leannas URL mini assignment
raquel leanna eleni url mini assignment
Big Data Week 2013 Flow
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
TechSEO Boost 2017: Making the Web Fast
Authentication, Authorization & Error Handling with GraphQL
Using Competitive Gap Analyses to Discover Low-Hanging Fruit
TechSEO Boost 2017: The State of Technical SEO
Ad

Similar to Hypermedia APIs that make sense (20)

PDF
HTML Hypermedia APIs and Adaptive Web Design - jDays 2013
PPTX
Making Sense of Hypermedia APIs – Hype or Reality?
PDF
A BASILar Approach for Building Web APIs on top of SPARQL Endpoints
PDF
Webinar: Semantic web for developers
PPT
Web API Classification Survey
PDF
Api craft notes
PDF
My Journey into the Terrifying World of Hypermedia
KEY
Harnessing the Crowds for Automating the Identification of Web APIs
KEY
Linked services
PDF
HTML Hypermedia APIs and Adaptive Web Design - reject.js
PPTX
Rest schema design
PDF
API Days Berlin highlights
PPT
Automating the Use of Web APIs through Lightweight Semantics
PPT
Semantic Search overview at SSSW 2012
PPTX
Api design part 1
PDF
Hypermedia api (HATEOAS)
PDF
GlueCon 2015 - How REST APIs can glue all types of devices together
ODP
PDF
Managed Search: Presented by Jacob Graves, Getty Images
PPTX
Semantic mark-up with schema.org: helping search engines understand the Web
HTML Hypermedia APIs and Adaptive Web Design - jDays 2013
Making Sense of Hypermedia APIs – Hype or Reality?
A BASILar Approach for Building Web APIs on top of SPARQL Endpoints
Webinar: Semantic web for developers
Web API Classification Survey
Api craft notes
My Journey into the Terrifying World of Hypermedia
Harnessing the Crowds for Automating the Identification of Web APIs
Linked services
HTML Hypermedia APIs and Adaptive Web Design - reject.js
Rest schema design
API Days Berlin highlights
Automating the Use of Web APIs through Lightweight Semantics
Semantic Search overview at SSSW 2012
Api design part 1
Hypermedia api (HATEOAS)
GlueCon 2015 - How REST APIs can glue all types of devices together
Managed Search: Presented by Jacob Graves, Getty Images
Semantic mark-up with schema.org: helping search engines understand the Web
Ad

More from Ruben Verborgh (8)

PDF
Linking media, data, and services
PDF
The Digital Cavemen of Linked Lascaux
PDF
The Lonesome LOD Cloud
PDF
Linked Data Fragments
PDF
Hypermedia Cannot be the Engine
PDF
Distributed Affordance
PDF
Functional Composition of Sensor Web APIs
PDF
RESTdesc – Efficient runtime service discovery and consumption
Linking media, data, and services
The Digital Cavemen of Linked Lascaux
The Lonesome LOD Cloud
Linked Data Fragments
Hypermedia Cannot be the Engine
Distributed Affordance
Functional Composition of Sensor Web APIs
RESTdesc – Efficient runtime service discovery and consumption

Recently uploaded (20)

PDF
Cloud-Scale Log Monitoring _ Datadog.pdf
PDF
Decoding a Decade: 10 Years of Applied CTI Discipline
PPTX
Power Point - Lesson 3_2.pptx grad school presentation
PPTX
522797556-Unit-2-Temperature-measurement-1-1.pptx
PPT
isotopes_sddsadsaadasdasdasdasdsa1213.ppt
PDF
FINAL CALL-6th International Conference on Networks & IOT (NeTIOT 2025)
PPTX
SAP Ariba Sourcing PPT for learning material
PPTX
Internet___Basics___Styled_ presentation
PPTX
Job_Card_System_Styled_lorem_ipsum_.pptx
PDF
The New Creative Director: How AI Tools for Social Media Content Creation Are...
PPTX
artificial intelligence overview of it and more
PDF
An introduction to the IFRS (ISSB) Stndards.pdf
PPTX
international classification of diseases ICD-10 review PPT.pptx
PPTX
Introduction to Information and Communication Technology
PDF
How to Ensure Data Integrity During Shopify Migration_ Best Practices for Sec...
PDF
Best Practices for Testing and Debugging Shopify Third-Party API Integrations...
PPTX
E -tech empowerment technologies PowerPoint
PPTX
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
PDF
Vigrab.top – Online Tool for Downloading and Converting Social Media Videos a...
PPT
tcp ip networks nd ip layering assotred slides
Cloud-Scale Log Monitoring _ Datadog.pdf
Decoding a Decade: 10 Years of Applied CTI Discipline
Power Point - Lesson 3_2.pptx grad school presentation
522797556-Unit-2-Temperature-measurement-1-1.pptx
isotopes_sddsadsaadasdasdasdasdsa1213.ppt
FINAL CALL-6th International Conference on Networks & IOT (NeTIOT 2025)
SAP Ariba Sourcing PPT for learning material
Internet___Basics___Styled_ presentation
Job_Card_System_Styled_lorem_ipsum_.pptx
The New Creative Director: How AI Tools for Social Media Content Creation Are...
artificial intelligence overview of it and more
An introduction to the IFRS (ISSB) Stndards.pdf
international classification of diseases ICD-10 review PPT.pptx
Introduction to Information and Communication Technology
How to Ensure Data Integrity During Shopify Migration_ Best Practices for Sec...
Best Practices for Testing and Debugging Shopify Third-Party API Integrations...
E -tech empowerment technologies PowerPoint
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
Vigrab.top – Online Tool for Downloading and Converting Social Media Videos a...
tcp ip networks nd ip layering assotred slides

Hypermedia APIs that make sense