Vlastní API
Když tvoje aplikace vystavuje rozhraní pro sebe nebo pro někoho jiného. Co musí splňovat, aby bylo bezpečné.
13 minlekce 75/107
Po lekci umíš
- Víš, kdy vlastní API potřebuješ
- Umíš zadat bezpečný koncový bod
- Znáš tři kontroly, které musí být na serveru
Obsah lekce (5)
Až doteď jsi byl na straně, která se ptá. Teď se podíváme na druhou stranu: tvoje aplikace odpovídá.
Kdy vlastní API potřebuješ
Prohlížeč mluví se serverem
Skoro vždycky. Když formulář něco uloží, mluví s tvým API, i když si tak neříká.
Cizí služba ti něco posílá
Platební brána oznámí zaplacení, e-mailová služba doručení. Říká se tomu webhook.
Někdo se napojuje na tebe
Mobilní aplikace, partner, tvůj vlastní skript.
Anatomie koncového bodu
Koncový bod je jedna adresa, která něco umí.
| Metoda | Adresa | Co dělá |
|---|---|---|
| GET | /api/rezervace | Vrátí seznam |
| GET | /api/rezervace/12 | Vrátí jednu |
| POST | /api/rezervace | Vytvoří novou |
| PATCH | /api/rezervace/12 | Změní existující |
| DELETE | /api/rezervace/12 | Smaže |
Tři kontroly, které musí být na serveru
Tohle je nejdůležitější část celé lekce.
Je uživatel přihlášený?
Autentizace. Kdo se ptá?
Smí to udělat?
Autorizace. Uživatel může být přihlášený a přesto nesmět mazat cizí rezervace.
Dávají data smysl?
Validace. Datum v minulosti, záporný počet, prázdné jméno, e-mail bez zavináče.
Vytvoř koncový bod
Zadání pro jakýkoliv nový endpoint.
Vytvoř koncový bod [METODA] /api/[CESTA], který [CO DĚLÁ]. Povinné: 1. Ověř, že je uživatel přihlášený. Když ne, vrať 401. 2. Ověř, že smí právě tuhle věc. Když ne, vrať 403. 3. Zkontroluj vstupní data – typy, povinnost, rozsahy. Při chybě vrať 400 a seznam problémů. 4. Chybové odpovědi ve srozumitelném tvaru, česky, bez technických detailů. 5. Nikdy nevracej víc dat, než je potřeba – žádná hesla, žádné cizí údaje. Než to napíšeš, popiš mi: - Jaký tvar má vstup a jaký výstup. - Které kontroly kde probíhají. - Co se vrátí v každé chybové situaci.
Chybové kódy
Používej ty správné. Ušetří to hodně zmatku při hledání chyb.
| Kód | Kdy |
|---|---|
| 200 | Vše v pořádku |
| 201 | Vytvořeno |
| 400 | Špatná data od klienta |
| 401 | Nepřihlášen |
| 403 | Přihlášen, ale nesmí |
| 404 | Neexistuje |
| 429 | Příliš mnoho požadavků |
| 500 | Chyba na tvé straně |
Webhooky
Když ti cizí služba něco oznamuje, platí navíc dvě věci:
Ověř, že to opravdu poslali oni
Služby posílají podpis, kterým se dá zpráva ověřit. Bez toho ti může kdokoliv napsat „zaplaceno“.
Počítej s tím, že přijde vícekrát
Stejné oznámení může dorazit dvakrát. Aplikace se musí zachovat stejně jako při jednom – jedna platba, jeden e-mail.
Ve své aplikaci vyber jeden koncový bod, který už máš, a projdi ho třemi kontrolami.
Skoro určitě zjistíš, že jedna z nich chybí – nejčastěji druhá, tedy kontrola, jestli uživatel smí sáhnout právě na tenhle záznam.
Co si odnést
- Koncový bod: metoda je sloveso, adresa podstatné jméno.
- Tři kontroly na serveru: přihlášen, smí to, dávají data smysl.
- Prohlížeči nikdy nevěř – kontroly v něm jsou pohodlí, ne bezpečnost.
- Vracej jen data, která obrazovka potřebuje.
- Webhooky ověřuj podpisem a počítej s tím, že dorazí vícekrát.
Máš to za sebou?
Označ lekci jako hotovou, ať víš, kde jsi skončil. Nic se tím neuzamkne.
Další lekceKdyž cizí služba selžeObsah aktualizován: 21. srpna 2026