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:

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:

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.

Zpět na Data