Obsah
REST (Representational State Transfer)
REST je architektonický styl definující sadu principů pro vytváření webových služeb. Služby odpovídající těmto principům se označují jako RESTful. REST není protokol (jako SOAP), ale využívá existující protokol HTTP.
Základní myšlenkou RESTu je práce se zdroji (resources), které jsou identifikovány pomocí unikátních adres (URI).
Základní principy RESTu
Aby bylo rozhraní považováno za RESTful, mělo by splňovat tyto podmínky:
- Bezstavovost (Statelessness): Server neukládá žádné informace o relaci klienta. Každý požadavek musí obsahovat všechna data potřebná k jeho zpracování.
- Oddělení klienta a serveru: Klient se stará o uživatelské rozhraní, server o data a logiku. Mohou se vyvíjet nezávisle.
- Jednotné rozhraní: Používání standardních HTTP metod a formátů (nejčastěji JSON nebo XML).
- Možnost kešování: Odpovědi musí definovat, zda je možné je uložit do mezipaměti, aby se snížila zátěž sítě.
HTTP Metody v RESTu
REST využívá standardní slovesa protokolu HTTP k provádění operací nad zdroji (často přirovnávané k operacím CRUD):
| HTTP Metoda | CRUD operace | Význam |
|---|---|---|
| GET | Read | Získání dat o zdroji (nemění stav). |
| POST | Create | Vytvoření nového zdroje. |
| PUT | Update/Replace | Úplná aktualizace (nahrazení) zdroje. |
| PATCH | Update/Modify | Částečná aktualizace zdroje. |
| DELETE | Delete | Odstranění zdroje. |
URI a Struktura zdrojů
Zdroje jsou v RESTu reprezentovány pomocí podstatných jmen v množném čísle.
Příklady volání API:
GET /uzivatele– Získá seznam všech uživatelů.GET /uzivatele/42– Získá detail uživatele s ID 42.POST /uzivatele– Vytvoří nového uživatele (data jsou v těle požadavku).GET /uzivatele/42/objednavky– Získá objednávky konkrétního uživatele.
Odpovědi a stavové kódy
Server vrací data (obvykle ve formátu JSON) společně s HTTP stavovým kódem, který indikuje výsledek operace.
| Kód | Význam | Příklad použití |
|---|---|---|
| 200 OK | Úspěch | Data byla v pořádku doručena. |
| 201 Created | Vytvořeno | Nový zdroj byl úspěšně vytvořen (po POST). |
| 400 Bad Request | Chyba klienta | Neplatná syntaxe požadavku. |
| 401 Unauthorized | Neautorizováno | Chybí nebo je neplatné přihlášení. |
| 404 Not Found | Nenalezeno | Požadované URI neexistuje. |
| 500 Internal Server Error | Chyba serveru | Neočekávaná chyba na straně serveru. |
Formáty dat
Ačkoliv REST může teoreticky přenášet jakýkoliv formát, v moderní praxi dominuje JSON díky své lehkosti a snadné čitelnosti v JavaScriptu.
// Příklad odpovědi v JSON
{
"id": 42,
"jmeno": "Jan Novák",
"email": "jan.novak@example.com",
"role": ["admin", "uzivatel"]
}
HATEOAS (Pokročilý koncept)
Hypermedia as the Engine of Application State je princip, kdy server v odpovědi posílá i odkazy na další možné akce, takže klient nemusí mít adresy „nadrátované“ napevno.
Tip: Pro testování a dokumentaci REST API se dnes jako standard používá nástroj Swagger (OpenAPI) nebo aplikace Postman.
