Upload
ruben-verborgh
View
1.437
Download
1
Embed Size (px)
Citation preview
SIMPLESERVERS CLEVERCLIENTS
Ruben Verborgh
Hypermedia APIs
that make sense
HOW DO WE MEASURE SUCCESS?
MY API IS GOOD BECAUSE I USE SWAGGER.
YOUR API SUCKSBECAUSE IT’S NOT REST.
MY API IS DOING HYPERMEDIA, LIKE, FOR REAL.
MY WEBSITE IS GOODBECAUSE I USE FLASH.
YOUR WEBSITE SUCKSBECAUSE THE MENU IS ON TOP.
MY WEBSITE REQUIRES ONLY3 CLICKS TO ACCESS STUFF.
API DESIGNIS STUCK WHERE WEB INTERACTION DESIGN WAS 15 YEARS AGO.
WEB INTERACTION DESIGN IN 2015 IS MEASURABLE:HOW LONG DOES IT TAKE CUSTOMERS TO BUYWHAT THEY WANT?
WEB INTERACTION DESIGN IN 2015 IS MEASURABLE:HOW OFTEN ISOUR CONTENT SHAREDON TWITTER?
HOW CAN WEMEASURE WEB API DESIGN DECISIONS?
HOW CAN WEMEASURE WEB API DESIGN DECISIONS?
www.docsduds.com
PUBLISHINGLINKED DATA
QUANTIFYING WEB APIS
MAKING SENSEWITH HYPERMEDIA
12
3
PUBLISHING LINKED DATA
QUANTIFYING WEB APIS
MAKING SENSEWITH HYPERMEDIA
12
3
LINKED DATACAPTURES FACTSWITH 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 ISTRANSLATED INTO 500 MILLIONLINKED DATA FACTS.
IT CAN BE QUERIEDBY THE WEB’SMOST POWERFUL API.
SPARQL QUERY LANGUAGE
??
?
SPARQL
WHICH FRENCH CITIES HAVE A POPULATION OFMORE THAN 200.000?
SPARQL
WHICH MOVIES WERE DIRECTED BY WOMEN WHO WROTE NOVELS?
SPARQL
SPARQLWEB API
THE WEB API IS THE SAME AS THE LANGUAGE:ASK ANYTHING
/SPARQL?QUERY=WHICH FRENCH CITIES HAVE A POPULATION OFMORE THAN 200.000?
SPARQL
/SPARQL?QUERY=WHICH MOVIES WERE DIRECTED BY WOMEN WHO WROTE NOVELS?
SPARQL
IT’S LIKE THEGRAPHQL OFLINKED DATA WITHOUT MONEY
THE SPARQL API IS SO POWERFUL THATTHAT MOST ENDPOINTS ARE DOWN > 1.5 DAY EACH MONTH
THE SPARQL API IS SO POWERFUL THATTHAT MOST ENDPOINTS ARE DOWN > 1.5 DAY EACH MONTH
PUBLISHINGLINKED DATA
QUANTIFYING WEB APIS
MAKING SENSEWITH HYPERMEDIA
12
3
SPARQLWEB API
LET’S MEASURE THE
S!C
S!C
!C
!C
!C
!C
!C
!C
EACH CLIENT SENDSUNIQUE REQUESTS, SOCACHING IS INEFFECTIVE
REQUESTS CAN BE ARBITRARILY COMPLICATED
THE INTERFACEIS EXPENSIVE
1 240 CLIENTS
SPARQL API
QUERIESPER HOUR
100 200
SPARQL API
1 240 CLIENTS100 200
SERVERCPU LOAD
SPARQL API
1 240 CLIENTS100 200
CLIENTCPU LOAD
SPARQL API
1 240 CLIENTS100 200
CACHEREUSE
WHO WILL PAYFOR SUCH ANEXPENSIVE API?
PUBLISHINGLINKED DATA
QUANTIFYING WEB APIS
MAKING SENSE WITH HYPERMEDIA
12
3
WHAT IF WE MADEA BETTER API?
GUESS WHAT? THAT’S WHATEVERYBODY DOES!
2005 2010 2015
1862,418
14,368
NUMBEROF APIS
2005 2010 2015
1862,418
14,368
NUMBEROF CLIENTS
HOW CAN WETHEN EXECUTEUNIFORM QUERIES?
WE DON’T.
HOW CAN WETHEN QUERYMULTIPLE APIS?
WE CAN’T.
WHAT IF WE MADEA SIMPLER API THAT EXPLAINED ITSELFWITH HYPERMEDIA?
“I DON’T DO
SERVER”
“BUT I DO
SERVER
”
“SO IF IWANT TO DO
CLIENT”
“THEN I NEEDTO ASK YOU
CLIENT”
“AND COMBINE IT MYSELF INTO
CLIENT”
CLIENTS STILLANSWER COMPLEX SPARQL QUERIES, JUST NOT WITHTHE SPARQL API
SERVER
TRIPLE PATTERN FRAGMENTS API
SERVER CLIENT
SPARQL API
TPF API
(nothing)
SIMPLESERVER
CLEVERCLIENT
TPF API
1 240 CLIENTS
SPARQL API
QUERIESPER HOUR
TPF API
100 200
SPARQL API
TPF API
1 240 CLIENTS100 200
SERVERCPU LOAD
SPARQL API
TPF API
1 240 CLIENTS100 200
CLIENTCPU LOAD
SPARQL API
TPF API
1 240 CLIENTS100 200
CACHEREUSE
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
1862,418
14,368
664,368NUMBEROF APIS
2005 2010 2015
1862,418
14,368
NUMBEROF CLIENTS
14,369
TRY A SIMPLE SERVER
AND A CLEVER CLIENT
data.linkeddatafragments.org
client.linkeddatafragments.org
PUBLISHINGLINKED DATA
QUANTIFYING WEB APIS
MAKING SENSEWITH HYPERMEDIA
12
3
WHEN DOESA CLIENT TRULY HAVE POWER?
IF IT SIMPLY USESCLEVER APIS?
IF IT CLEVERLYUSESSIMPLE APIS?
IF YOU HAVE THE MONEY,USE SPARQL OR GRAPHQL
INTELLIGENCEIS EXPENSIVE
IF NOT, LET EACH CLIENTUSE ITS OWN CPU
I STOPPED THINKINGABOUT WEB APIS A LONG TIME AGO
I’M NOW THINKINGABOUT WEB CLIENTS
AND WHEN I SAY WEB,I MEAN HYPERMEDIA
I CAN’T MEASURE HYPERMEDIA, BUT I CAN MEASURE CLIENTS DOINGTHE SAME TASKSON DIFFERENT APIS
HYPERMEDIA LETSA SERVER EXPLAINITS API TO CLIENTS, SO THEY CAN USE ITIN MEASURABLYDIFFERENT WAYS.
SIMPLESERVERS CLEVERCLIENTS
@RubenVerborgh
Hypermedia APIs
that make sense