REST og hypermedia

Preview:

Citation preview

REST og Hypermedia

Miniseminar NTNU

Janniche Haugen

Litt om meg…

BILDE AV DIGIPOST

Integrasjon

Utfordringer ved integrasjon

Oppetid

Skalerbarhet

State

Endringer over tid /versjonshåndtering av grensesnitt

Forskjellige klienter har forskjellige behov

+++

REST

REpresentational State Transfer

Roy T. Fielding:

WWW

Fordeler med webbens infrastruktur

Enkel, kjent protokoll

Løs kobling

Skalerbarhet

HTTP

Verb:

– GET

– POST

– PUT

– DELETE

– OPTIONS, HEAD, TRACE, CONNECT, PATCH

Request

– URI, verb, headere og en payload

Response

– Respons kode (200 ok, 404 Not Found, ++), headere og en payload

“Web-modenhet” handler om i hvilken grad man utnytter webbens infrastruktur i

applikasjonen sin

Case

Bestille en flybillett hos Norwegian

Web Maturity Level 0

En URI

Ett HTTP-verb

Bestilling:

– POST av en stor xml eller lignende til en gitt URI, for eksempelhttp://www.norwegian.no

– Payload inneholder all info om hva som skal gjøres, alle parametere

– Typisk SOAP

Bruker HTTP kun som en tunnel for et “RPC-kall”

Web Maturity Level 1

Flere URI’er

Ett HTTP-verb

Eksempel:

– Norwegian kan tilby flere URI’er: for vanlig bestilling, gruppereiser ogandre operasjoner og man benytter forskjelige URI’er for forskjelligeoperasjoner, men kun ett HTTP-verb støttes per URI

– http://www.norwegian.no/bestilling

– http://www.norwegian.no/gruppereise

– http://www.norwegian.no/bonusprogram

Hver av tjenestene bak hver URI er her mindre komplekse

Web Maturity Level 2

Flere URI’er

Flere HTTP-verb

Eksempel:

- Norwegian kan tilby flere URI’er hvor man kan f.eks

- GET http://norwegian.no/minereservasjoner/user/1/reservations

- DELETE http://norwegian.no/minereservasjoner/user/1/reservations/2

- Typisk CRUD service

Bruker HTTP verb og statuskoder til å kontrollere interaksjon, og fårderfor utbytte av robustheten som ligger i webbens infrastruktur

Web Maturity Level 3

Flere URI’er

Flere HTTP-verb

Altså samme som Level 2…

…MEN, bruker i tillegg hypermedia for å styre flyten mellom ressurser

Hypermedia

Linker

<a href="http://norwegian.no/minesider”>Mine sider</a>

<link href="http://norwegian.no/….." rel=”betaling” />

Finnes også andre typer som forms, men vi konsentrerer oss om linker idag

HATEOAS

Hypermedia AsTheEngineOfApplication State

I steden for å holde state delt mellom klient ogserver, representerer vi den som overganger i

en forretningsprotokoll.

I steden for at du på forhånd skal vite alt, vildu bli presentert muligheter på veien.

Enkelt eller lett?

For å være RESTful må man brukehypermedia for å drive en

forretningsprotokoll

JSON støtter ikke hypermedia…

… og vi mister derfor mange fordeler ved åutnytte webbens protokoller og infrastruktur.

BEKK CONSULTING ASSKUR 39, VIPPETANGEN. P.O. BOX 134 SENTRUM, 0102 OSLO, NORWAY. WWW.BEKK.NO

Janniche Haugen

Manager

+47 986 28 859

janniche.haugen@bekk.no

miss_haugen @ twitter

Nå: tilbake til R7 for fellessesjon

Recommended