Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Vägen till REST

on

  • 1,447 views

Presentation av vår resa i Streamflow-projektet för att uppnå REST Level 3, med HATEOAS-stöd.

Presentation av vår resa i Streamflow-projektet för att uppnå REST Level 3, med HATEOAS-stöd.

Statistics

Views

Total Views
1,447
Views on SlideShare
1,447
Embed Views
0

Actions

Likes
1
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • Visa UI’et\nVisa delarna (workspace/admin/account/crystal)\n\n
  • SOAP - komplext, återuppfinner webben, missar cachning etc.\nREST - rätt arkitekturellt, men svårt att få rätt\n\n
  • SOAP - komplext, återuppfinner webben, missar cachning etc.\nREST - rätt arkitekturellt, men svårt att få rätt\n\n
  • SOAP - komplext, återuppfinner webben, missar cachning etc.\nREST - rätt arkitekturellt, men svårt att få rätt\n\n
  • \n
  • Vilken nivå ska man sikta på?\n0 - transport\n1 - flera resurser, endast POST\n2 - flera resurser, POST/GET/PUT/DELETE, hänger inte samman\n3 - bookmark-modellen\n\n
  • Vilken nivå ska man sikta på?\n0 - transport\n1 - flera resurser, endast POST\n2 - flera resurser, POST/GET/PUT/DELETE, hänger inte samman\n3 - bookmark-modellen\n\n
  • Vilken nivå ska man sikta på?\n0 - transport\n1 - flera resurser, endast POST\n2 - flera resurser, POST/GET/PUT/DELETE, hänger inte samman\n3 - bookmark-modellen\n\n
  • Vilken nivå ska man sikta på?\n0 - transport\n1 - flera resurser, endast POST\n2 - flera resurser, POST/GET/PUT/DELETE, hänger inte samman\n3 - bookmark-modellen\n\n
  • \n
  • \n
  • \n
  • Hur göra REST “på riktigt”?\n\n
  • Logik på klienten\nSynkronisering av logik\nTraditionell 2-tier\n
  • Bloggar, artiklar, etc.\nAnnotering “gör det enkelt”\n\n
  • Servlets använder inte REST språk\nJAX-RS lite för lågnivå\nRestlet - bra ramverk, enkelt att bygga ut, klient\n\n
  • Servlets använder inte REST språk\nJAX-RS lite för lågnivå\nRestlet - bra ramverk, enkelt att bygga ut, klient\n\n
  • Servlets använder inte REST språk\nJAX-RS lite för lågnivå\nRestlet - bra ramverk, enkelt att bygga ut, klient\n\n
  • Servlets använder inte REST språk\nJAX-RS lite för lågnivå\nRestlet - bra ramverk, enkelt att bygga ut, klient\n\n
  • Domänmodell - säkerhet?\n\n
  • Alla resurser är enskilda, ingen helhet\n\n
  • Level 3? Hypermedia! Länka samman\n\n
  • Insikt!\n\n
  • Användarfall ger helhetsbild och flöden\n\n
  • Olika operationer för olika roller/usecases\n\n
  • Auktorisering baserat på usecases blir naturligt\n\n
  • Visa possiblelinks\n\n
  • Visa possiblelinks\n\n
  • Visa possiblelinks\n\n
  • Visa possiblelinks\n\n
  • Visa possiblelinks\n\n
  • Visa possiblelinks\n\n
  • Visa possiblelinks\n\n
  • Visa possiblelinks\n\n
  • Visa två klienter, samma ärende\n\n
  • Visa två klienter, samma ärende\n\n
  • Visa två klienter, samma ärende\n\n
  • Visa två klienter, samma ärende\n\n
  • Visa två klienter, samma ärende\n\n
  • Visa två klienter, samma ärende\n\n
  • Visa två klienter, samma ärende\n\n
  • Visa två klienter, samma ärende\n\n
  • Visa två klienter, samma ärende\n\n
  • Visa VisualVM/contactlookup\nVisa case actions\n\n
  • Visa i browser\n\n
  • Inga sessioner!\nTokens kan vara ok\nURL ger hjälp för auktorisering\n\n
  • \n
  • \n
  • \n

Vägen till REST Vägen till REST Presentation Transcript

  • Vägen till REST En länk i taget Rickard Öberg, Jayway
  • Hur det började
  • Uppdraget
  • Vägvalet
  • VägvaletRMI?
  • VägvaletRMI?SOAP?
  • VägvaletRMI?SOAP?REST?
  • På upptäcktsfärd
  • Richardson Maturity model
  • Richardson Maturity model Level 0 SOAP, XML RPC, POX – Single URI
  • Richardson Maturity model Level 0 SOAP, XML RPC, POX – Single URI Level 1 URI Tunnelling – Many URIs, Single verb
  • Richardson Maturity model Level 0 SOAP, XML RPC, POX – Single URI Level 1 URI Tunnelling – Many URIs, Single verb Level 2 Many URIs, many verbs CRUD services (e.g. Amazon S3)
  • Richardson Maturity model Level 0 SOAP, XML RPC, POX – Single URI Level 1 URI Tunnelling – Many URIs, Single verb Level 2 Many URIs, many verbs CRUD services (e.g. Amazon S3) Level 3 Level 2 + Hypermedia – RESTful Services
  • REST till räddning!“Representational State Transfer (REST)is a style of software architecture fordistributed hypermedia systems such asthe World Wide Web”
  • RiktlinjernaClient–serverStatelessCacheableLayered systemUniform interface http://en.wikipedia.org/wiki/Representational_State_Transfer#Constraints
  • Fler riktlinjerIdentification of resourcesManipulation of resources throughthese representationsSelf-descriptive messagesHypermedia As The Engine OfApplication State (HATEOAS)
  • Den smala vägen
  • Vad ska vi exponera? Klient Data Server
  • Vad ska vi exponera? Klient Domänmodell Server
  • Hur?
  • Hur?Servlets?
  • Hur?Servlets?JAX-RS?
  • Hur?Servlets?JAX-RS?Restlet
  • Hur?Servlets?JAX-RS?Restlet www.restlet.org
  • What the...?
  • What the...?/users/rickard/changepassword/users/rickard/resetpassword
  • Var är HATEOAS?!?“The next control state of an application resides in therepresentation of the first requested resource, … Theapplication state is controlled and stored by the useragent … anticipate changes to that state (e.g., link mapsand prefetching of representations) … The modelapplication is therefore an engine that moves from onestate to the next by examining and choosing fromamong the alternative state transitions in the current setof representations.” - Roy Fielding
  • Vad gör vi nu då?
  • Ett steg i taget
  • Vad ska vi exponera? Klient Användarfall Server
  • Ur användarens perspektiv
  • Ur användarens perspektiv/account/changepassword/administration/server/users/rickard/resetpassword
  • Vem får göra vad?/workspace/cases/<123>//administrator/.../overview/...
  • Följ den namngivna länken
  • Följ den namngivna länken REST API
  • Följ den namngivna länkenQuery REST API
  • Följ den namngivna länken LinksQuery REST API
  • Följ den namngivna länken Links LinkQuery REST API
  • Följ den namngivna länken Links LinkQuery Command REST API
  • Samtidigare REST API
  • SamtidigareQuery Last-Modified REST API
  • Samtidigare LinksQuery Last-Modified REST API
  • Samtidigare Links LinkQuery Last-Modified REST API
  • Samtidigare Links LinkQuery Last-Modified If-Unmodified-Since Command REST API
  • LänktestFinns länken?
  • Varianter av data/workspace/cases/search/search Accept-Header: text/html/workspace/cases/search/search.json/workspace/cases/search/search.html/workspace/cases/search/search.atom
  • SäkerhetAutenticering BASIC AUTH + HTTPSAuktorisering /administration/...
  • VersioneringHATEOAS hjälperExponera usecases hjälperSkicka header Ex. X-STREAMFLOW-API: 1.2Klientbibliotek
  • Wohoo!
  • Q&Arickard.oberg@jayway.com @rickardoberghttp://jroller.com/rickard http://qi4j.org