![Page 1: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/1.jpg)
RESTPeter Rybár
![Page 2: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/2.jpg)
Obsah
● SOA● REST
● REST princípy● REST výhody
● pREST
● Otázky
![Page 3: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/3.jpg)
![Page 4: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/4.jpg)
SOA – implementácie
● WEB (1990)● CORBA (1991)● XML-RPC (1998)● WS-* (1998)
● SOAP – RPC/literal
● SOAP – Document/literal (2001)
● REST (2000)
![Page 5: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/5.jpg)
SOA – Web implementácie
REST vs. WS-*
![Page 6: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/6.jpg)
REST vs WS-*
![Page 7: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/7.jpg)
REST
![Page 8: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/8.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 9: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/9.jpg)
REST – Princípy
● Princípy:
1. URI – identifikácia zdroj (všetko je zdroj)
2. CRUD – jednotné rozhranie pre všetky zdroje
3. Reprezentácie – rôzne podoby správy (MIME)
4. Bezstavovsť – umožňuje škálovateľnosť
5. Hypermédiá – prelinkovanie médií/reprezentácií
![Page 10: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/10.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 11: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/11.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 12: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/12.jpg)
REST – Princípy
● Reprezentácie:
● Jeden zdroj – viacero reprezentácií
![Page 13: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/13.jpg)
![Page 14: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/14.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 15: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/15.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 16: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/16.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 17: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/17.jpg)
Čo nie je REST?
![Page 18: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/18.jpg)
Čo nie je REST?
● POX (Plain Old XML) bez SOAP obálky
● 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>
● Ignorovanie HTTP Cache● Ignorovanie HTTP Status Codes
![Page 19: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/19.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 20: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/20.jpg)
REST – Výhody
● Fundamentálny prístup => SEO● Silná podpora Web 2.0 – Google, Amazon (S3) ...
![Page 21: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/21.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í
![Page 22: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/22.jpg)
pRESTPeter RybárCentaur a.s.
REST Web Framework
![Page 23: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/23.jpg)
pREST
● Web framework navrhnutý na vývoj● Webových aplikácií (AJAX, RIA)● Webových služieb
● Pre vývoj architektonickým štýlom REST● Kladie dôraz na:
● Jednoduchosť vývoja● Efektivitu vývoja● Modularitu a Extenzibilitu● Vysoký výkon
![Page 24: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/24.jpg)
pREST – dva komponenty
● Framework pozostáva z dvoch komponentov
● Serverový komponent– Kontróler pre Java servlet kontajner so
sadou rozšírení
● Klientský komponent– Javascript knižnica, UI Toolkit – je možné ju
použiť v kombinácii s ľubovolnou technológiou na strane servera.
![Page 25: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/25.jpg)
pREST – server
● Kontróler
● Základná funkčná jednotka
● Multiaction – nie komand● Akcie – mapované na
verejné metódy kontrólera
![Page 26: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/26.jpg)
pREST – server
pREST
![Page 27: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/27.jpg)
pREST – klient
● JavaScript knižnica, UI Toolkit pre tvorbu RIA
● Cieľ:● Jednoduchosť● Efektivita● Abstrakcia DOM● Reusability● Konektivita s okolím● Nezávislosť na
serverovej platforme
Využiť silu JavaScript-u ako prototypovacieho objektového jazyka
![Page 28: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/28.jpg)
pREST – spĺňa požiadavky
● Minimálna doba nábehu vývojára do vývoja● Čas rádovo v hodinách
● Horizontálny vývoj aplikácií● Vývojár ovláda iba svoju doménu
● Vyššia kvalita kódu, efektivita vývoja● Voľná väzba
● Technologická nezávislosť● Stabilita
● Platformová nezávislosť● Java 5
![Page 29: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/29.jpg)
pREST – výkon, efektivita, testy
Requests / Second Total transferred (kB) HTTP body transferred (kB)0.00
1000.00
2000.00
3000.00
4000.00
5000.00
6000.00
7000.00
8000.00
echoServletpRESTAXISAXIS SOAP
![Page 30: REST · REST – Princípy Princípy: 1. URI – identifikácia zdroj (všetko je zdroj) 2. CRUD – jednotné rozhranie pre všetky zdroje 3. Reprezentácie – rôzne podoby správy](https://reader036.vdocuments.mx/reader036/viewer/2022071410/6104809b2264da71384a53f4/html5/thumbnails/30.jpg)
pREST – výkon, efektivita, testy
Lines of Codes XML code0
2
4
6
8
10
12
14
16echo Servlet
pRESTAXIS