Top Banner
REST og Hypermedia Miniseminar NTNU Janniche Haugen
32

REST og hypermedia

Jul 16, 2015

Download

Technology

janniche
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: 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