REST API (Representational State Transfer API) je architektonický styl pro vytváření síťových aplikací
REST je způsob, jakým systémy mohou komunikovat přes HTTP podobně jako webové aplikace
RESTful API používá standardní metody HTTP jako GET, POST, PUT, DELETE atd. k manipulaci s datovými zdroji
Ilustrace architektury REST API:
Popis
Zdroje (Resources): Každý zdroj má jedinečný identifikátor (URI), kterým je možné k němu přistupovat. Například, pokud máme databázi uživatelů, každý uživatel by mohl mít svůj unikátní URI jako /users/{id}.
Operace (Operations): Klient může provádět operace nad zdroji pomocí standardních HTTP metod. GET pro čtení, POST pro vytvoření, PUT pro aktualizaci a DELETE pro smazání zdroje.
Reprezentace (Representation): Data, která jsou posílána mezi klientem a serverem, jsou reprezentována v určitém formátu, jako je JSON, XML, HTML, …
Stav aplikace (Statelessness): Každá požadavek od klienta na server musí obsahovat všechny informace potřebné pro porozumění a zpracování tohoto požadavku. Server neuchovává žádný kontext o klientovi mezi jednotlivými požadavky.
Jednotné rozhraní (Uniform Interface): Rozhraní mezi klientem a serverem by mělo být jednotné, aby bylo snadné pro klienty porozumět a používat. To zahrnuje standardní HTTP metody a formáty dat.
Příklady
Webová aplikace s REST API:
Webová aplikace může mít REST API pro komunikaci s backendem.
Např. pro získávání informací o uživatelích, jejich příspěvcích a dalších dat.
Mobilní aplikace s REST API:
Mobilní aplikace může komunikovat se vzdáleným serverem pomocí REST API.
může posílat požadavky na server pro získání dat nebo aktualizaci informací.
IoT zařízení s REST API:
IoT zařízení může poskytovat REST API pro vzdálený přístup a správu.
Např. pro ovládání osvětlení, termostatu a dalších zařízení.
Cloudová služba s REST API:
Cloudová služba může poskytovat REST API pro manipulaci s daty v cloudu.
Např. pro nahrávání, stahování a správu souborů.
E-commerce platforma s REST API:
E-commerce platforma může poskytovat REST API pro správu produktů, objednávek a plateb.
To umožňuje vývojářům integrovat platformu s různými aplikacemi a službami.
Příklady dotazů
Získání informací o uživateli:
GET /users/123 HTTP/1.1Host: api.example.com
Přidání nového uživatele:
POST /users HTTP/1.1Host: api.example.comContent-Type: application/json{ "name": "Jan Novak", "email": "jan.novak@example.com"}
Aktualizace uživatele:
PUT /users/123 HTTP/1.1Host: api.example.comContent-Type: application/json{ "email": "novy.email@example.com"}