REST og hypermedia

32
REST og Hypermedia Miniseminar NTNU Janniche Haugen

Transcript of REST og hypermedia

Page 1: REST og hypermedia

REST og Hypermedia

Miniseminar NTNU

Janniche Haugen

Page 2: REST og hypermedia

Litt om meg…

Page 3: REST og hypermedia
Page 4: REST og hypermedia

BILDE AV DIGIPOST

Page 5: REST og hypermedia

Integrasjon

Page 6: REST og hypermedia

Utfordringer ved integrasjon

Oppetid

Skalerbarhet

State

Endringer over tid /versjonshåndtering av grensesnitt

Forskjellige klienter har forskjellige behov

+++

Page 7: REST og hypermedia

REST

Page 8: REST og hypermedia

REpresentational State Transfer

Page 9: REST og hypermedia

Roy T. Fielding:

Page 10: REST og hypermedia

WWW

Page 11: REST og hypermedia

Fordeler med webbens infrastruktur

Enkel, kjent protokoll

Løs kobling

Skalerbarhet

Page 12: REST og hypermedia

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

Page 13: REST og hypermedia

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

applikasjonen sin

Page 14: REST og hypermedia

Case

Bestille en flybillett hos Norwegian

Page 15: REST og hypermedia

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”

Page 16: REST og hypermedia

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

Page 17: REST og hypermedia

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

Page 18: REST og hypermedia

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

Page 19: REST og hypermedia

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

Page 20: REST og hypermedia

HATEOAS

Page 21: REST og hypermedia

Hypermedia AsTheEngineOfApplication State

Page 22: REST og hypermedia

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

en forretningsprotokoll.

Page 23: REST og hypermedia

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

Page 24: REST og hypermedia

Enkelt eller lett?

Page 25: REST og hypermedia

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

forretningsprotokoll

Page 26: REST og hypermedia

JSON støtter ikke hypermedia…

Page 27: REST og hypermedia

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

Page 28: REST og hypermedia
Page 30: REST og hypermedia
Page 31: REST og hypermedia

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

Janniche Haugen

Manager

+47 986 28 859

[email protected]

miss_haugen @ twitter

Page 32: REST og hypermedia

Nå: tilbake til R7 for fellessesjon