Hypermedia APIs that make sense

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

Transcript of Hypermedia APIs that make sense

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