Presentation laddar. Vänta.

Presentation laddar. Vänta.

REST i Ladok3 »Jan Stenberg, Knowit »Senior arkitekt i Ladok3 2013-10-23.

Liknande presentationer


En presentation över ämnet: "REST i Ladok3 »Jan Stenberg, Knowit »Senior arkitekt i Ladok3 2013-10-23."— Presentationens avskrift:

1 REST i Ladok3 »Jan Stenberg, Knowit »Senior arkitekt i Ladok

2 Agenda »Introduktion »Bakgrund »Valet av REST för Ladok3 »REST-principer »REST i Ladok3 »Ladok3:s arkitektur »Exempel, REST - Ladok3 »Summering

3 Introduktion »Ladok3 har valt REST »Ett gemensamt gränssnitt för Ladok3 •Externt och internt •Användargränssnitt o Webbaserat mot användare, REST internt •Web API för lärosäten

4 Bakgrund »Web Services, WS, var ett paradigmskifte när det kom »Vi gick från proprietära protokoll som DCOM, RMI och CORBA, (som var standardiserade på papperet men inte i verkligheten), till integration med XML och standard- protokoll. »Men… •WS använder bara en del av http-protokollet, för transport. •WS beskriver bara enskilda operationer. •Ger ett beroende mellan klient och server •REST kan beskriva ett flöde.

5 Valet av REST för Ladok3 »REST har många fördelar •Plattformsoberoende •Lösa kopplingar •Skalbarhet, en eller flera servers •Enkelhet •Utvecklas snabbt mot att bli ”standard” för ett Web API »Och få nackdelar •Relativt nytt •Vi kan inte automatgenerera kod för kommunikationen »Inga reella alternativ, ( SOAP, CORBA, DCOM, Java RMI)

6 Förändringar mot dagens Ladok LadokLadok3 Webb • LW - utdata Webb • Webbgränssnitt för administratör Webbkomponenter • TG – portlets Webb • Studentgränssnitt Tjänstegränssnitt • T – SOAP • LP – Ping Tjänstegränssnitt • REST SQL • Direkta DB frågor/uppdateringar SQL (enbart för läsning) • Enbart i Uppföljning

7 Webben som applikationsplattform »Världens största distribuerade informationssystem »”Alla” plattformar »Prestanda o Stateless - lätt att replikera o Skalbarhet - Internet-scale »Löst kopplat, allt måste inte vara igång »Ladok3:s plattform (idémässigt)

8 HTTP »Hypertext Transfer Protocol »Protokollet för webben •url •http •html »Ett applikationsprotokoll, (inte bara ett transportprotokoll) »Header som beskriver ett meddelande »Body med själva meddelandet

9 HTTP-meddelanden GET /studiedeltagande/student/... HTTP/1.1 Accept: application/vnd.ladok+xml HTTP/ OK Content-Type: application/vnd.ladok+xml Date: Wed, 23 Oct :45:44 GMT... Request: Header: Response: Header: Body:

10 HTTP-metoder »GET •Hämtar en representation av en resurs •Inga sidoeffekter, ”idempotent” »POST •Skapar en ny resurs, utökar en resurs •Servern skapar URI •Skapar nya resurser »PUT •Uppdaterar en känd resurs, ”idempotent” »DELETE •Ta bort en resurs, ”idempotent”

11 Statuskoder »HTTP/ OK »1xx: Informational: Request received, continuing process »2xx: Success: The action was successfully received, understood, and accepted »3xx: Redirection: Further action must be taken in order to complete the request »4xx: Client error: The request contains bad syntax or cannot be fulfilled »5xx: Server error: The server failed to fulfill an apparently valid request

12 REpresentional State Transfer UNIVERSITY OF CALIFORNIA, IRVINE Architectural Styles and the Design of Network-based Software Architectures DISSERTATION submitted in partial satisfaction of the requirements for the degree of DOCTOR OF PHILOSOPHY in Information and Computer Science by Roy Thomas Fielding 2000

13 Ett exempel »amazon.com »Webbplatsen leder mig genom ett flöde när jag lägger en order •Adress •Leveranssätt •Betalning •Sammanställning, lägg order

14 Resurs »Vad som helst i ett system som en konsument kan interagera med: Information •Dokument •Webbsidor •Kurs •Kaffemaskin •Transaktioner •Avstånd mellan två punkter

15 Uniform Resource Identifier, URI »Identifierar en resurs, skiljer en resurs från en annan »En resurs kan ha flera identifierare / URI:er »En URI kan också vara en adress till resursen, en URL, som ger åtkomst till resursen »Exempel https://api.ladok.se/utbildningsinformation/kurs/4b5c c9a66 uuid: 4b5c0410-a68c-11e2-9e c9a66

16 Representation »En representation av tillståndet på en resurs vid en viss tidpunkt »På webben utbyter man representationer, aldrig den underliggande resursen »Formatet på en representation beror på klientens önskemål: html, xml, json, etc. »En resurs har samma adress, URL, oberoende av typ av representation

17 Exempel på representationer c39-11e c9a Ålandsson Örjan { "Uid":" c39-11e c9a66", "Personnummer":" ", "Efternamn":"Ålandsson” "Fornamn":"Örjan" }

18 Länkar »Länkar bygger upp webben »Representationer kan innehålla länkar, (URL:er) »Länkar pekar på andra resurser. •I ett studiedeltagande finns en länk till studenten »Länkar visar på möjligheter för tillståndsförändringar »I REST är länkar opaka, dvs. de ska inte tolkas …

19 Hypermedia »Hypermedia = länkar mellan information/media »Länkar skapar ett hypermedia-format »HATEOAS Hypermedia As The Engine Of Application State •En klient följer länkar som en tjänst levererar i representationer •Applikationen drivs framåt genom övergång från ett tillstånd till ett annat •När applikationen når ett nytt tillstånd presenterar den vilka nya tillståndsövergångar som är möjliga

20 Relationer »Ger semantik till en länk •Vad länken betyder •Varför en klient ska följa länken …

21 Exempel på relationer »Standard-relationer, IANA Link Relations registry •self •previous, next •payment »Ladok3-specifika •http://relations.ladok.se/studiedeltagande/registreringhttp://relations.ladok.se/studiedeltagande/registrering •http://relations.ladok.se/studentinformation/studenthttp://relations.ladok.se/studentinformation/student

22 Exempel Antagning Deltagande Skapar url: rel: registrering url: rel: avbrott url:

23 Mediatyper »Mediatypen beskriver format på en representation process-modellen, vad en klient kan göra för ett specifikt representations-format » text/html, image/jpeg »Ladok3 har två mediatyper: application/vnd.ladok+xml application/vnd.ladok+json

24 Relationer, länkar och mediatyper Vad innebär länken: rel:VARFÖR vill jag komma åt den länkade resursen? uri:VAR finns resursen? mediaType:HUR ska jag tolka svaret?

25 Kontrakt »Domain Application Protocol, DAP •Utökar en mediatyp med applikationsspecifika värden på länk- relationer •Begränsar http-protokollet »Tre nyckelkomponenter •Mediatyp, ex: application/vnd.ladok+xml •Länk – relationer o Beskriver rollen för länkade resurser •http-verben o Manipulerar resurser som ingår i protokollet

26 RESTful »REST – Fullt ut »Human-webb – REST API »Utforskande »Klienten behöver inte känna till url:er »Klienten kan upptäcka nya relationer

27 REST i Ladok3 »RESTful – REST fullt ut •Använder HTTP som ett applikationsprotokoll •Hypermedia-drivet med länkar som leder klienten till andra resurser och driver tillståndsförändringar »DAP •Domain Application Protocol

28 Exempel »Prata REST med Ladok3

29 Dokumentation »Genereras maskinellt av tjänsterna »Kommer troligtvis att finnas både online och som nedladdningsbar fil »Innehåller text och XML-scheman https://www.mit.ladok.se/restdoc/resultat.html

30

31

32 Arkitektur för Ladok3 Resultat Studenter Deltagande Utbildningar Examen Ladok3 Behörighet StudentEtablerad api.ladok.se

33 Multitenant »En klient till en tjänst, vårt GUI eller ett system hos ett lärosäte jobbar i kontextet av ett lärosäte. •Autentisering som visar vilket lärosäte klienten tillhör o Via Shibboleth o Via certifikat •Behörighet sätts utifrån klient. •Behörighet administreras i Ladok3

34 Referenser RESTful Web APIs REST in Practice Böcker

35 Summering »Den vanliga webben men med XML eller JSON som format och med relationer för att beskriva länkar »Resurser »Representationer »Hypermedia •Länkar •Relationer •Servern leder klienten »Ger ett oberoende mellan klient och server »Plattformsoberoende, nu och i framtiden

36 Frågor? »?»?


Ladda ner ppt "REST i Ladok3 »Jan Stenberg, Knowit »Senior arkitekt i Ladok3 2013-10-23."

Liknande presentationer


Google-annonser