Summary of Data Exchange and Web APIs
Data Exchange & Web APIs: A Student's Guide to Digital Communication
Úvod
Webové API (Application Programming Interface) umožňuje komunikaci mezi klientem a serverem přes síť. Představuje sadu pravidel a rozhraní, pomocí kterých si aplikace vyměňují data — typicky přes HTTP(S). Tento materiál shrnuje principy HTTP, REST, alternativní architektury (JSON:API, GraphQL), popis API pomocí OpenAPI a související technologie jako AJAX či WebSocket.
Definice: Webové API je sada specifikovaných metod, protokolů a formátů, které umožňují klientským aplikacím bezpečně a strukturovaně volat funkce a sdílet data se serverem.
Základy komunikace: HTTP a klient-server architektura
Klient a server
- Klient: webový prohlížeč, mobilní aplikace, robot, IoT zařízení nebo jiná aplikace, která iniciuje požadavek.
- Server: webový nebo aplikační server (Apache, Nginx, IIS), obvykle běží na fyzickém nebo virtuálním stroji.
Princip HTTP
- HTTP je protokol vrstevně nad TCP/QUIC, funguje na aplikační vrstvě. Je to request-response protokol, stateless (stav není automaticky uchováván mezi požadavky).
- Standardní port je 80, pro zabezpečený provoz HTTPS používáme TLS (port 443).
Definice: Stateless znamená, že server neudržuje informace o předchozích požadavcích klienta; každý požadavek obsahuje vše potřebné pro zpracování.
HTTP metody (nejdůležitější)
- GET – čtení zdroje (bez vedlejších účinků).
- POST – zaslání dat na server (např. vytvoření zdroje nebo odeslání formuláře).
- PUT – vytvoření nebo nahrazení reprezentace cílového zdroje.
- PATCH – částečná aktualizace zdroje.
- DELETE – odstranění zdroje.
Další: HEAD, OPTIONS, CONNECT, TRACE (především pro diagnostiku nebo specifické scénáře).
HTTP hlavičky a kódy odpovědí
- Hlavičky přenášejí metadata (User-Agent, Content-Type, Authorization, Cache-Control, atd.).
- Kódy odpovědí skupiny:
- 1xx informace
- 2xx úspěch (200, 201, 204)
- 3xx přesměrování (301, 302, 304)
- 4xx chyba klienta (400, 401, 403, 404, 405)
- 5xx chyba serveru (500, 502, 503)
REST (REpresentational State Transfer)
Základní principy
- REST je architektonický styl, který využívá HTTP jako přenosovou vrstvu.
- Vše je zdroj (resource) identifikovaný URI, klient s ním pracuje pomocí jednotného rozhraní (HTTP metody).
- Klíčová omezení: stateless, cacheability, uniform interface, layered system.
Definice: REST API poskytuje přístup ke zdrojům přes HTTP tak, že zdroje jsou identifikovány URI a operace se provádějí pomocí standardních HTTP metod.
Formáty dat
- Nejčastěji se používá JSON; dříve časté bylo XML. REST neomezuje formát, ale JSON je pro web modernější.
Příklad REST URL a operací
- GET https://api.example.com/users/123 — získat uživatele s ID 123
- POST https://api.example.com/users — vytvořit nového uživatele
- PUT https://api.example.com/users/123 — nahradit uživatele 123
- PATCH https://api.example.com/users/123 — upravit části uživatele 123
- DELETE https://api.example.com/users/123 — smazat uživatele 123
OpenAPI Specification (OAS)
- OAS je popis API v JSON nebo YAML formátu, který umožňuje generovat dokumentaci, klientské stuby, mock servery a testy.
- Hlavní sekce: openapi, info, servers, paths (operations), components (schemas, parameters, securitySchemes).
JSON:API a GraphQL — alternativy k „čistému“ RESTu
JSON:API
- Specifikace, která definuje konzistentní formát JSON pro REST API (media type application/vnd.api+json).
- Standardizuje strukturu odpovědí, včetně relationships, meta a included sekcí.
GraphQL
- Jazyk pro dotazování dat, který umožňuje klientovi přesně specifikovat, jaká data potřebuje, a tím redukovat počet volání.
- Server poskytuje schéma a resolve
Already have an account? Sign in
Webové API - přehled
Klíčové pojmy: Webové API definuje rozhraní pro komunikaci mezi aplikacemi přes síť, HTTP je základní protokol pro Web API; používá metody GET, POST, PUT, PATCH, DELETE, REST používá zdroje identifikované URI a standardní HTTP metody, OpenAPI (OAS) popisuje API v JSON/YAML a umožňuje generování dokumentace a stubů, JSON je hlavní formát dat pro moderní REST API; XML se používá u starších služeb, GraphQL umožňuje klientovi specifikovat přesně požadovaná data a snižuje počet požadavků, WebSocket poskytuje persistentní obousměrné spojení pro realtime komunikaci, AJAX (Fetch/XHR) umožňuje asynchronické aktualizace bez reloadu stránky, SOAP a XML-RPC se používají v enterprise scénářích s pevně definovanými kontrakty, Bezpečnost: vždy HTTPS/TLS, používat OAuth/JWT a rate limiting, HTTP odpovědi mají status kódy 1xx–5xx, které popisují výsledek požadavku, Používejte správnou dokumentaci a validaci (OAS, schémata) pro robustní API