peťo rybár - rest
DESCRIPTION
Prezentácia Peťa Rybára na Java User Group BratislavaTRANSCRIPT
![Page 1: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/1.jpg)
RESTRepresentational State Transfer
Peter Rybár
Web appsIntegration – apps, dataData processing, extraction
![Page 2: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/2.jpg)
REST – história
![Page 3: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/3.jpg)
SOA – implementácie
WEB (1990)CORBA (1991)XML-RPC (1998)WS-* (1998)
SOAP – RPC/literal SOAP – Document/literal (2001)
REST (2000)
![Page 4: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/4.jpg)
SOA – Web implementácie
REST vs. WS-*
![Page 5: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/5.jpg)
Čo je REST ?
REST Representational State Transfer Roy Fielding PhD, 2000 Architektonický štýl
REST stojí na princípoch, ktoré umožňujú HTTP byť tak dobre škálovateľnýREST „je Web“ – nie je tunelovaný cez Web
![Page 6: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/6.jpg)
REST vs WS-*
![Page 7: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/7.jpg)
REST vs WS-*
![Page 8: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/8.jpg)
REST vs. WS-*
Web – svet globálne prístupných informácií
Web – univerzálne transportné médium
![Page 9: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/9.jpg)
REST – Princípy
![Page 10: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/10.jpg)
REST – Princípy
Princípy:
1. URI – identifikácia zdroja (všetko je zdroj)2. CRUD – jednotné rozhranie pre všetky zdroje3. Reprezentácie – rôzne podoby správy (MIME)4. Bezstavovsť – umožňuje škálovateľnosť5. Hypermédiá – prelinkovanie médií/reprezentácií
![Page 11: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/11.jpg)
REST – Princípy
URI:
Všetko sú zdroje ↔ ROA Zdroje sú identifikované URI Zdroje sú podstatné mená http://example.net/customer http://example.net/car http://example.net/shopping-cart
![Page 12: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/12.jpg)
REST – Princípy
CRUD:
jednotné rozhranie pre prácu so zdrojmi POST – Create, vytvára nový zdroj GET – Read, bezpečná operácia PUT – Update, idempotentná operácia DELETE – Delete, idempotentná operácia
![Page 13: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/13.jpg)
REST – Princípy
Reprezentácie:
Jeden zdroj – viacero reprezentácií
![Page 14: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/14.jpg)
![Page 15: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/15.jpg)
REST – Princípy
Reprezentácie:
Jeden zdroj – viacero reprezentácií text/html, application/pdf, image/png
Typ reprezentácie je v HTTP hlavičke Request – Accept Response – Content-Type
![Page 16: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/16.jpg)
REST – Princípy
Bezstavovsť:
HTTP server nepozná stav Neexistuje HTTP Session!
Klient udržuje stav cez linky Funguje back button Funguje bookmarkovanie
Škálovateľný systém!
![Page 17: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/17.jpg)
REST – Princípy
Hypermédiá:
Reprezentácie zdrojov – hypermédiá Hypermédiá – obsahujú linky na iné médiá Zmena stavu klienta – cez linky v hypermédiách Linky poskytuje server
![Page 18: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/18.jpg)
REST – Anti-Patterns
![Page 19: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/19.jpg)
Čo REST nie je:
POX (Plain Old XML) bez SOAP obálky Zneužíva Web rovnako ako WS-*
Použitie HTTP GET/POST pre RPC HTTP je aplikačný protokol HTTP nie transportný protokol pre volanie vzdialených metód
REST Anti-Patterns
![Page 20: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/20.jpg)
REST Anti-Patterns
Tunelovanie cez HTTP GET http://example.net/api?method=find&id=37 http://example.net/api/find/37
Tunelovanie cez HTTP POST POST http://example.net/api/ <method name=“find“> <id>37</id> </method>
![Page 21: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/21.jpg)
![Page 22: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/22.jpg)
REST – Výhody
![Page 23: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/23.jpg)
REST – Výhody
Jednoduchý vývoj => Nízka cena Jednotné nemenné rozhranie CRUD HTTP je všadeprítomný – povolený na FW
Bezstavová interakcia => Škálovateľnosť
Tenká infraštruktúra => Ľahká adopcia Stačí Webový prehliadač Nie je potreba kupovať drahý WS-* middleware
![Page 24: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/24.jpg)
REST – Výhody
Fundamentálny prístup => SEO Silná podpora Web 2.0 – Google, Amazon, ...
![Page 25: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/25.jpg)
REST – Nástroje
![Page 26: Peťo Rybár - Rest](https://reader035.vdocument.in/reader035/viewer/2022062220/55672080d8b42a221e8b4ee5/html5/thumbnails/26.jpg)
REST – Nástroje
Zmena architektúry => Zmena nástrojov Dôraz na jednoduchosť, odľahčenie Jednoduchý stack technológií Jedny nástroje pre vývoj:
Web služieb Web aplikácií