oktatas:web:rest:rest_api
Különbségek
A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Előző változat mindkét oldalonElőző változat | |||
oktatas:web:rest:rest_api [2022/10/10 23:55] – [Linkek] admin | oktatas:web:rest:rest_api [2023/03/16 10:51] (aktuális) – eltávolítva admin | ||
---|---|---|---|
Sor 1: | Sor 1: | ||
- | [[oktatas: | ||
- | ====== REST API ====== | ||
- | |||
- | * **Szerző: | ||
- | * Copyright (c) Sallai András, 2021, 2022 | ||
- | * Licenc: [[https:// | ||
- | * Web: https:// | ||
- | |||
- | ===== REST-ről ===== | ||
- | |||
- | * reprezentatív állapotátvitel | ||
- | |||
- | |||
- | **Roy Fielding** 2000-ben mutatta be. | ||
- | |||
- | A REST egy szoftverarchitektúra-stílus. | ||
- | |||
- | Megszorítások, | ||
- | * kliens-szerver | ||
- | * URL-n keresztül elérhető | ||
- | * állapotmentes | ||
- | * rétegelt rendszer | ||
- | * gyorstárazható | ||
- | * egységes interfész köti össze a szervert és a klienst | ||
- | * igényelt kód - a szerver kódokat ad át a kliensnek futtatásra (JavaScript) | ||
- | |||
- | Ha egy alkalmazás megfelel ezeknek a követelményeknek, | ||
- | akkor azt **RESTful** alkalmazásnak nevezzük. | ||
- | |||
- | Ha egy fejlesztő ért mind a **frontend**, | ||
- | őt nevezzük **Full Stack fejlesztőnek**. Az ilyen fejlesztő tehát | ||
- | tud külön Frontendet fejleszteni, | ||
- | |||
- | Néhol használják a Full Stack szót a Frontend és Backend együttes használatára. | ||
- | Ebben az esetben is arról van szó, hogy a két rész között HTTP protokollt használunk. | ||
- | HTTP nélkül nem beszélhetünk Full Stack technológiáról. | ||
- | |||
- | |||
- | Új API technológiák: | ||
- | * [[https:// | ||
- | * [[https:// | ||
- | |||
- | A REST API előtt, a webszolgáltatások hálózaton keresztüli kommunikációjához | ||
- | a SOAP protokollt használták, | ||
- | használnak, | ||
- | |||
- | {{: | ||
- | |||
- | |||
- | ===== REST API ===== | ||
- | A REST API HTTP protokollal: | ||
- | |||
- | * az API HTTP protokollon teszi elérhetővé az adatokat | ||
- | * az erőforráson CRUD műveletek elvégezhetők | ||
- | * HTTP módok használata: | ||
- | |||
- | {{: | ||
- | |||
- | |||
- | Az összeállított URL-k végeit, végpontoknak nevezzük. | ||
- | A végpontokat tetszőlegesen állítjuk össze. | ||
- | |||
- | |||
- | Példa végpontokra: | ||
- | < | ||
- | GET / | ||
- | GET / | ||
- | POST / | ||
- | PUT / | ||
- | PATCH | ||
- | DELETE | ||
- | DELETE | ||
- | </ | ||
- | |||
- | |||
- | A végpontok CRUD műveleteket valósítanak meg. | ||
- | Az egyes CRUD műveletekhez a következő HTTP metódusokat | ||
- | szoktuk rendelni: | ||
- | |||
- | < | ||
- | CRUD művelet | ||
- | ------------------------------------ | ||
- | create POST / | ||
- | read GET / | ||
- | update PUT / | ||
- | update PATCH / | ||
- | delete DELETE / | ||
- | </ | ||
- | |||
- | {{: | ||
- | |||
- | |||
- | ===== Végpont ===== | ||
- | |||
- | A végpont a kérelem benyújtásához használt URL. | ||
- | Például: | ||
- | http:// | ||
- | |||
- | A http:// | ||
- | |||
- | |||
- | Előfordul, hogy ugyanahhoz az erőforráshoz többféle végponton hozzáférhetünk: | ||
- | |||
- | | http:// | ||
- | | http:// | ||
- | | http:// | ||
- | | http:// | ||
- | |||
- | Egyazon végpont különböző erőforrásokat szolgáltathat, | ||
- | A végpont a http:// | ||
- | |||
- | | http:// | ||
- | | http:// | ||
- | | http:// | ||
- | | http:// | ||
- | |||
- | ===== Szoftverek REST API-hoz ===== | ||
- | |||
- | A **REST API** teszteléséhez erre a célra kialakított kliens programot használunk. | ||
- | Egyik elterjedt kliens a **Postman**, | ||
- | |||
- | * https:// | ||
- | * https:// | ||
- | * https:// | ||
- | * https:// | ||
- | * https:// | ||
- | * https:// | ||
- | * https:// | ||
- | |||
- | ===== httpie ===== | ||
- | |||
- | A httpie telepíthető npm paranccsal, de Linuxon linuxos csomag is rendelkezésre áll. | ||
- | Telepítés után egy http parancsot kapunk. | ||
- | |||
- | Teszteléshez írjuk be: | ||
- | http get http:// | ||
- | |||
- | Apache szerver esetén, ha csak ennyit írunk: | ||
- | http:// | ||
- | Egy átirányítás történik a következő címre: | ||
- | http:// | ||
- | |||
- | Ez jól látszik a http parancs kimenetében: | ||
- | http get http:// | ||
- | |||
- | A kimenet ehhez hasonló: | ||
- | < | ||
- | HTTP/1.1 301 Moved Permanently | ||
- | Connection: Keep-Alive | ||
- | Content-Length: | ||
- | Content-Type: | ||
- | Date: Fri, 22 Oct 2021 20:43:09 GMT | ||
- | Keep-Alive: timeout=5, max=100 | ||
- | Location: http:// | ||
- | Server: Apache/ | ||
- | |||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | < | ||
- | < | ||
- | <hr> | ||
- | < | ||
- | </ | ||
- | |||
- | </ | ||
- | |||
- | Ha "/" | ||
- | |||
- | < | ||
- | HTTP/1.1 200 OK | ||
- | Connection: Keep-Alive | ||
- | Content-Length: | ||
- | Content-Type: | ||
- | Date: Fri, 22 Oct 2021 20:44:30 GMT | ||
- | Keep-Alive: timeout=5, max=100 | ||
- | Server: Apache/ | ||
- | |||
- | Valami weblap | ||
- | </ | ||
- | |||
- | |||
- | Ha localhost-t használunk rövidíthetünk: | ||
- | < | ||
- | http :8000 | ||
- | http :/valami | ||
- | </ | ||
- | |||
- | |||
- | Alapértelmezett a GET: | ||
- | http zold.lan | ||
- | |||
- | Ha van adat, akkor POST | ||
- | http zold.lan valami=érték | ||
- | |||
- | A ? előtt mindig \ jel szükséges: | ||
- | http get http:// | ||
- | |||
- | JSON adatok átadása: | ||
- | http post http:// | ||
- | |||
- | |||
- | ===== Insomnia ===== | ||
- | |||
- | |||
- | ==== Beszerzés ==== | ||
- | |||
- | * https:// | ||
- | |||
- | Windowsra létezik portable verzió is: | ||
- | Insomnia.Core-2021.5.3-portable.exe | ||
- | |||
- | Debian GNU/Linux 11-re az Ubuntus verzió nem telepszik. | ||
- | Használjuk helyette a .tar.gz kiterjesztésű fájl. | ||
- | Ebben találunk egy futtatható binárist. | ||
- | |||
- | |||
- | ==== Használat ==== | ||
- | |||
- | Jobb oldalon van egy " | ||
- | |||
- | * Create > Request Collection | ||
- | |||
- | Ez előugró ablakban adjunk a kollekciónak nevet. | ||
- | Például: | ||
- | app01 | ||
- | |||
- | Kattintsunk a " | ||
- | |||
- | Baloldalon, a + ikonra kattintva hozzunk létre egy új könyvtárat: | ||
- | * New Folder | ||
- | |||
- | |||
- | Az " | ||
- | legördülő listadobozt. Erre kattintva, az előugró menüből | ||
- | válassza a "New Request" | ||
- | Az előugró ablakban például: | ||
- | get employees | ||
- | |||
- | ===== HATEOAS ===== | ||
- | A HATEOAS a Hypermedia as the Engine of Application State rövidítése. | ||
- | |||
- | A HATEOAS szerint REST API-ba érdemes olyan linkeket elhelyezni, amelyek | ||
- | segítségével az alkalmazás önfelfedező lesz. | ||
- | |||
- | Ha egy kliens lekért valamit, azt is látja, hogyan tud továbbmenni. | ||
- | |||
- | <code javascript> | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | } | ||
- | } | ||
- | </ | ||
- | |||
- | |||
- | ===== REST API leírás ===== | ||
- | |||
- | Végpontleírás példa: | ||
- | |||
- | ^ Végpont | ||
- | | / | ||
- | | / | ||
- | | / | ||
- | |||
- | |||
- | ===== Linkek ===== | ||
- | |||
- | * https:// | ||
- | * https:// | ||
- | * https:// | ||
- | * https:// | ||
- | * https:// | ||
- | |||
- | JSON kiszolgáló példa: | ||
- | * https:// | ||
- | * https:// | ||
- | * https:// | ||
- | * https:// | ||
- | * https:// | ||
- | |||
- | API tervezés: | ||
- | * https:// | ||
- | |||
- | Azonosítás: | ||
- | * https:// |
oktatas/web/rest/rest_api.1665438953.txt.gz · Utolsó módosítás: 2022/10/10 23:55 szerkesztette: admin