hypermedia apis that make sense

Post on 12-Apr-2017

1.442 Views

Category:

Internet

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related