Top Banner
SIMPLE SERVERS CLEVER CLIENTS Ruben Verborgh Hypermedia APIs that make sense
72

Hypermedia APIs that make sense

Apr 12, 2017

Download

Internet

Ruben Verborgh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Hypermedia APIs that make sense

SIMPLESERVERS CLEVERCLIENTS

Ruben Verborgh

Hypermedia APIs

that make sense

Page 2: Hypermedia APIs that make sense

HOW DO WE MEASURE SUCCESS?

Page 3: Hypermedia APIs that make sense

MY API IS GOOD BECAUSE I USE SWAGGER.

YOUR API SUCKSBECAUSE IT’S NOT REST.

MY API IS DOING HYPERMEDIA, LIKE, FOR REAL.

Page 4: Hypermedia APIs that make sense

MY WEBSITE IS GOODBECAUSE I USE FLASH.

YOUR WEBSITE SUCKSBECAUSE THE MENU IS ON TOP.

MY WEBSITE REQUIRES ONLY3 CLICKS TO ACCESS STUFF.

Page 5: Hypermedia APIs that make sense

API DESIGNIS STUCK WHERE WEB INTERACTION DESIGN WAS 15 YEARS AGO.

Page 6: Hypermedia APIs that make sense

WEB INTERACTION DESIGN IN 2015 IS MEASURABLE:HOW LONG DOES IT TAKE CUSTOMERS TO BUYWHAT THEY WANT?

Page 7: Hypermedia APIs that make sense

WEB INTERACTION DESIGN IN 2015 IS MEASURABLE:HOW OFTEN ISOUR CONTENT SHAREDON TWITTER?

Page 8: Hypermedia APIs that make sense

HOW CAN WEMEASURE WEB API DESIGN DECISIONS?

Page 9: Hypermedia APIs that make sense

HOW CAN WEMEASURE WEB API DESIGN DECISIONS?

www.docsduds.com

Page 10: Hypermedia APIs that make sense

PUBLISHINGLINKED DATA

QUANTIFYING WEB APIS

MAKING SENSEWITH HYPERMEDIA

12

3

Page 11: Hypermedia APIs that make sense

PUBLISHING LINKED DATA

QUANTIFYING WEB APIS

MAKING SENSEWITH HYPERMEDIA

12

3

Page 12: Hypermedia APIs that make sense

LINKED DATACAPTURES FACTSWITH LINKS

Page 13: Hypermedia APIs that make sense

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

Page 14: Hypermedia APIs that make sense

{

"@id": "dbpedia:Nikola_Tesla",

"foaf:knows": "dbpedia:Thomas_Edison",

"foaf:givenName": "Nikola"

JSON-LD

!

!

!

!

}

Page 15: Hypermedia APIs that make sense

WIKIPEDIA ISTRANSLATED INTO 500 MILLIONLINKED DATA FACTS.

Page 16: Hypermedia APIs that make sense

IT CAN BE QUERIEDBY THE WEB’SMOST POWERFUL API.

Page 17: Hypermedia APIs that make sense

SPARQL QUERY LANGUAGE

Page 18: Hypermedia APIs that make sense

??

?

SPARQL

Page 19: Hypermedia APIs that make sense

WHICH FRENCH CITIES HAVE A POPULATION OFMORE THAN 200.000?

SPARQL

Page 20: Hypermedia APIs that make sense

WHICH MOVIES WERE DIRECTED BY WOMEN WHO WROTE NOVELS?

SPARQL

Page 21: Hypermedia APIs that make sense

SPARQLWEB API

Page 22: Hypermedia APIs that make sense

THE WEB API IS THE SAME AS THE LANGUAGE:ASK ANYTHING

Page 23: Hypermedia APIs that make sense

/SPARQL?QUERY=WHICH FRENCH CITIES HAVE A POPULATION OFMORE THAN 200.000?

SPARQL

Page 24: Hypermedia APIs that make sense

/SPARQL?QUERY=WHICH MOVIES WERE DIRECTED BY WOMEN WHO WROTE NOVELS?

SPARQL

Page 25: Hypermedia APIs that make sense

IT’S LIKE THEGRAPHQL OFLINKED DATA WITHOUT MONEY

Page 26: Hypermedia APIs that make sense

THE SPARQL API IS SO POWERFUL THATTHAT MOST ENDPOINTS ARE DOWN > 1.5 DAY EACH MONTH

Page 27: Hypermedia APIs that make sense

THE SPARQL API IS SO POWERFUL THATTHAT MOST ENDPOINTS ARE DOWN > 1.5 DAY EACH MONTH

Page 28: Hypermedia APIs that make sense

PUBLISHINGLINKED DATA

QUANTIFYING WEB APIS

MAKING SENSEWITH HYPERMEDIA

12

3

Page 29: Hypermedia APIs that make sense

SPARQLWEB API

LET’S MEASURE THE

Page 30: Hypermedia APIs that make sense

S!C

Page 31: Hypermedia APIs that make sense

S!C

!C

!C

!C

!C

!C

!C

Page 32: Hypermedia APIs that make sense

EACH CLIENT SENDSUNIQUE REQUESTS, SOCACHING IS INEFFECTIVE

REQUESTS CAN BE ARBITRARILY COMPLICATED

THE INTERFACEIS EXPENSIVE

Page 33: Hypermedia APIs that make sense

1 240 CLIENTS

SPARQL API

QUERIESPER HOUR

100 200

Page 34: Hypermedia APIs that make sense

SPARQL API

1 240 CLIENTS100 200

SERVERCPU LOAD

Page 35: Hypermedia APIs that make sense

SPARQL API

1 240 CLIENTS100 200

CLIENTCPU LOAD

Page 36: Hypermedia APIs that make sense

SPARQL API

1 240 CLIENTS100 200

CACHEREUSE

Page 37: Hypermedia APIs that make sense

WHO WILL PAYFOR SUCH ANEXPENSIVE API?

Page 38: Hypermedia APIs that make sense

PUBLISHINGLINKED DATA

QUANTIFYING WEB APIS

MAKING SENSE WITH HYPERMEDIA

12

3

Page 39: Hypermedia APIs that make sense

WHAT IF WE MADEA BETTER API?

GUESS WHAT? THAT’S WHATEVERYBODY DOES!

Page 40: Hypermedia APIs that make sense

2005 2010 2015

1862,418

14,368

NUMBEROF APIS

Page 41: Hypermedia APIs that make sense

2005 2010 2015

1862,418

14,368

NUMBEROF CLIENTS

Page 42: Hypermedia APIs that make sense

HOW CAN WETHEN EXECUTEUNIFORM QUERIES?

WE DON’T.

Page 43: Hypermedia APIs that make sense

HOW CAN WETHEN QUERYMULTIPLE APIS?

WE CAN’T.

Page 44: Hypermedia APIs that make sense

WHAT IF WE MADEA SIMPLER API THAT EXPLAINED ITSELFWITH HYPERMEDIA?

Page 45: Hypermedia APIs that make sense

“I DON’T DO

SERVER”

Page 46: Hypermedia APIs that make sense

“BUT I DO

SERVER

Page 47: Hypermedia APIs that make sense

“SO IF IWANT TO DO

CLIENT”

Page 48: Hypermedia APIs that make sense

“THEN I NEEDTO ASK YOU

CLIENT”

Page 49: Hypermedia APIs that make sense

“AND COMBINE IT MYSELF INTO

CLIENT”

Page 50: Hypermedia APIs that make sense

CLIENTS STILLANSWER COMPLEX SPARQL QUERIES, JUST NOT WITHTHE SPARQL API

Page 51: Hypermedia APIs that make sense

SERVER

TRIPLE PATTERN FRAGMENTS API

Page 52: Hypermedia APIs that make sense

SERVER CLIENT

SPARQL API

TPF API

(nothing)

Page 53: Hypermedia APIs that make sense

SIMPLESERVER

CLEVERCLIENT

TPF API

Page 54: Hypermedia APIs that make sense

1 240 CLIENTS

SPARQL API

QUERIESPER HOUR

TPF API

100 200

Page 55: Hypermedia APIs that make sense

SPARQL API

TPF API

1 240 CLIENTS100 200

SERVERCPU LOAD

Page 56: Hypermedia APIs that make sense

SPARQL API

TPF API

1 240 CLIENTS100 200

CLIENTCPU LOAD

Page 57: Hypermedia APIs that make sense

SPARQL API

TPF API

1 240 CLIENTS100 200

CACHEREUSE

Page 58: Hypermedia APIs that make sense

RESPONSES CONTAIN HYPERMEDIA CONTROLS IN JSON-LD USING THE HYDRA VOCABULARY

Page 59: Hypermedia APIs that make sense

{ "@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

Page 60: Hypermedia APIs that make sense

I CAN DO

I CAN DO

I CAN DO

I CAN DO

Page 61: Hypermedia APIs that make sense

2005 2010 2015

1862,418

14,368

664,368NUMBEROF APIS

Page 62: Hypermedia APIs that make sense

2005 2010 2015

1862,418

14,368

NUMBEROF CLIENTS

14,369

Page 63: Hypermedia APIs that make sense

TRY A SIMPLE SERVER

AND A CLEVER CLIENT

data.linkeddatafragments.org

client.linkeddatafragments.org

Page 64: Hypermedia APIs that make sense

PUBLISHINGLINKED DATA

QUANTIFYING WEB APIS

MAKING SENSEWITH HYPERMEDIA

12

3

Page 65: Hypermedia APIs that make sense

WHEN DOESA CLIENT TRULY HAVE POWER?

Page 66: Hypermedia APIs that make sense

IF IT SIMPLY USESCLEVER APIS?

Page 67: Hypermedia APIs that make sense

IF IT CLEVERLYUSESSIMPLE APIS?

Page 68: Hypermedia APIs that make sense

IF YOU HAVE THE MONEY,USE SPARQL OR GRAPHQL

INTELLIGENCEIS EXPENSIVE

IF NOT, LET EACH CLIENTUSE ITS OWN CPU

Page 69: Hypermedia APIs that make sense

I STOPPED THINKINGABOUT WEB APIS A LONG TIME AGO

I’M NOW THINKINGABOUT WEB CLIENTS

AND WHEN I SAY WEB,I MEAN HYPERMEDIA

Page 70: Hypermedia APIs that make sense

I CAN’T MEASURE HYPERMEDIA, BUT I CAN MEASURE CLIENTS DOINGTHE SAME TASKSON DIFFERENT APIS

Page 71: Hypermedia APIs that make sense

HYPERMEDIA LETSA SERVER EXPLAINITS API TO CLIENTS, SO THEY CAN USE ITIN MEASURABLYDIFFERENT WAYS.

Page 72: Hypermedia APIs that make sense

SIMPLESERVERS CLEVERCLIENTS

@RubenVerborgh

Hypermedia APIs

that make sense