====== REST API (Representational State Transfer) ====== **REST API** je rozhraní, které využívá principy architektury REST pro výměnu dat mezi klientem (např. webový prohlížeč) a serverem. Je založeno na bezstavovosti a využívá standardní metody protokolu HTTP. ===== 1. Základní principy RESTu ===== Aby bylo rozhraní považováno za "RESTful", mělo by splňovat několik pravidel: * **Klient-Server:** Oddělení uživatelského rozhraní od datového úložiště. * **Bezstavovost (Statelessness):** Každý požadavek od klienta musí obsahovat všechny informace potřebné k jeho zpracování. Server si mezi požadavky nepamatuje žádný "stav" (kontext) klienta. * **Jednotné rozhraní:** Komunikace probíhá pomocí standardních URL adres (zdrojů) a HTTP metod. * **Cacheovatelnost:** Odpovědi serveru by měly definovat, zda je možné je uložit do mezipaměti (cache), aby se ušetřil přenos dat. --- ===== 2. HTTP Metody (Slovesa) ===== REST API využívá HTTP metody k definování akce, která se má se zdrojem provést: ^ Metoda ^ Akce ^ Význam ^ | **GET** | Čtení | Získání dat o zdroji (např. seznam uživatelů). | | **POST** | Vytvoření | Vytvoření nového zdroje (např. registrace uživatele). | | **PUT** | Aktualizace | Nahrazení stávajícího zdroje novými daty. | | **PATCH** | Částečná aktualizace | Úprava pouze části zdroje (např. změna hesla). | | **DELETE** | Smazání | Odstranění zdroje. | --- ===== 3. Zdroje a URL struktura ===== V RESTu je vše považováno za **zdroj** (resource), ke kterému se přistupuje pomocí unikátní adresy (URI). Názvy v URL by měly být podstatná jména v množném čísle. **Příklady:** * `GET /users` – Získá seznam všech uživatelů. * `GET /users/42` – Získá detail uživatele s ID 42. * `POST /users` – Vytvoří nového uživatele (data jsou v těle požadavku). --- ===== 4. Formát dat (JSON) ===== Ačkoliv REST může teoreticky používat i XML nebo text, naprostým standardem je dnes **JSON** (JavaScript Object Notation). Je lehký, dobře čitelný pro lidi a snadno zpracovatelný pro stroje. // Příklad odpovědi ve formátu JSON { "id": 42, "jmeno": "Jan Novák", "email": "jan.novak@example.com" } --- ===== 5. Stavové kódy HTTP ===== Server informuje klienta o výsledku požadavku pomocí číselných kódů: * **2xx (Success):** Např. **200 OK** (vše v pořádku) nebo **201 Created** (úspěšně vytvořeno). * **4xx (Client Error):** Např. **400 Bad Request** (chyba v datech od klienta) nebo **404 Not Found** (zdroj neexistuje). * **5xx (Server Error):** Např. **500 Internal Server Error** (chyba na straně serveru). ---- //Související články:// * [[it:net:http_protocol|Protokol HTTP hloubkově]] * [[it:sw:asp_net_core|ASP.NET Core: Tvorba Web API]] * [[it:sw:json|Formát JSON: Specifikace]] //Tagy: {{tag>programming web api rest json http architecture}}//