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).
Aby bylo rozhraní považováno za RESTful, mělo by splňovat tyto podmínky:
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. |
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.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. |
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"]
}
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.