Klíče, limity a náklady
Jak se cizí službě prokážeš, co se stane při překročení limitu a jak se vyhnout nepříjemnému účtu.
12 minlekce 74/107
Po lekci umíš
- Umíš bezpečně pracovat s API klíči
- Rozumíš limitům a víš, jak na ně reagovat
- Umíš si pohlídat náklady dřív, než přijde faktura
Obsah lekce (3)
Každá placená služba potřebuje vědět, kdo se ptá. K tomu slouží API klíč – dlouhý náhodný řetězec, který funguje jako heslo.
Pravidla pro klíče
Nikdy v kódu
Ani „dočasně, než to zprovozním“. Dočasné klíče v kódu končí v Gitu.
Vždy v proměnné prostředí
Lokálně v
.env.local, naostro v nastavení hostingu.Nikdy v prohlížeči
Cokoliv, co se dostane do prohlížeče, si může kdokoliv přečíst. Klíče žijí na serveru.
Různé klíče pro test a ostrý provoz
Většina služeb je rozlišuje. Testovací klíč nesmí umět utratit peníze.
Otočit klíč, když je podezření
Objevil se ve screenshotu? V commitu? V logu? Zruš ho a vygeneruj nový.
Zkontroluj práci s klíči
Před nasazením a po každém napojení nové služby.
Zkontroluj mi v projektu práci s API klíči a tajnými hodnotami.
1. Je někde v kódu natvrdo zapsaný klíč, token nebo heslo?
2. Dostane se nějaká tajná hodnota do prohlížeče – například přes
proměnnou s veřejnou předponou?
3. Je v .gitignore všechno, co obsahuje skutečné hodnoty?
4. Obsahuje .env.example všechny proměnné, které projekt potřebuje –
ale bez hodnot?
5. Objevuje se nějaký klíč v logu nebo v chybové hlášce?
U každého nálezu napiš, jak je to vážné a co s tím.Bod 5 je zákeřný. Když se při chybě vypíše celý požadavek včetně hlaviček, klíč skončí v logu – a log může vidět víc lidí, než čekáš.
Limity
Cizí služby omezují, kolik dotazů smíš poslat. Typicky „sto požadavků za minutu“.
Když limit překročíš, dostaneš odpověď s kódem 429. To není chyba tvé aplikace – je to pokyn „zpomal“.
Počkej a zkus znovu
Ne hned. Chvíli počkat, pak zkusit, při dalším neúspěchu počkat déle. Prodlužující se čekání je standardní řešení.
Nezkoušej donekonečna
Tři až pět pokusů. Pak to vzdej a řekni uživateli, co se děje.
Nevolej zbytečně
Když se odpověď nemění každou vteřinu, ulož si ji a chvíli používej uloženou.
Ošetři limity a výpadky
Po napojení služby, kterou aplikace volá často.
Naše aplikace volá [SLUŽBA]. Chci to ošetřit proti limitům a výpadkům. Zařiď: 1. Při odpovědi 429 počkat a zkusit znovu, s prodlužujícím se čekáním. Maximálně 4 pokusy. 2. Při chybě serveru (5xx) totéž. 3. Při chybě klienta (4xx kromě 429) nezkoušet znovu – to se opakováním nespraví. 4. Po vyčerpání pokusů srozumitelnou hlášku pro uživatele v češtině, ne technickou chybu. 5. Zapsat do logu, co se stalo, ale bez klíče. Vysvětli mi, co se stane z pohledu uživatele v každém z těch případů.
Náklady
Ceník bývá „za požadavek“ nebo „za objem“. Nebezpečné je, že tvoje aplikace může udělat víc požadavků, než čekáš – kvůli chybě, kvůli opakování ve smyčce nebo kvůli tomu, že ji někdo zneužije.
Nastav si upozornění na útratu
Většina služeb to umí. Nastav to dřív, než něco spustíš.
Nastav strop, když to jde
Tvrdý limit, po kterém se to zastaví, je lepší než překvapení.
Ukládej opakované odpovědi
Když se ptáš na to samé stokrát denně, ptej se jednou.
Omez, kolik smí jeden uživatel
Bez toho může jeden člověk (nebo robot) vyčerpat tvůj rozpočet.
Spusť kontrolní prompt na klíče ve svém projektu.
Pak jdi do administrace jedné placené služby, kterou používáš, a nastav si upozornění na útratu. Trvá to tři minuty a jednou ti to ušetří nepříjemný večer.
Co si odnést
- Klíče patří do proměnných prostředí a zůstávají na serveru.
- Proměnné s veřejnou předponou jsou vidět v prohlížeči – nikdy tam nedávej tajné hodnoty.
- Kód 429 znamená zpomal: počkej a zkus znovu, ale jen omezeně.
- Chybu 4xx neopakuj, ta se opakováním nespraví.
- Nastav upozornění na útratu dřív, než něco spustíš.
Máš to za sebou?
Označ lekci jako hotovou, ať víš, kde jsi skončil. Nic se tím neuzamkne.
Další lekceVlastní APIObsah aktualizován: 21. srpna 2026