Když cizí služba selže
Internet je nespolehlivý. Jak zařídit, aby výpadek cizí služby neznamenal rozbitou aplikaci.
11 minlekce 76/107
Po lekci umíš
- Víš, čím vším může volání selhat
- Umíš rozhodnout, co má aplikace v takové chvíli udělat
- Znáš rozdíl mezi kritickou a doplňkovou závislostí
Volání cizí služby selže. Ne možná – jistě. Otázka je jen kdy a jak často.
Rozdíl mezi amatérskou a slušnou aplikací není v tom, že v té druhé nic neselhává. Je v tom, že v té druhé se se selháním počítá.
Čím vším to může selhat
Neodpoví včas
Nejhorší varianta. Nedostaneš chybu, jen ticho. Bez nastaveného časového limitu tvoje aplikace čeká donekonečna.
Vrátí chybu
5xx na jejich straně, 4xx na tvojí.
Vrátí něco jiného, než čekáš
Změnili tvar odpovědi, nebo je chybějící pole prázdné.
Vrátí správně, ale pomalu
Odpověď za osm vteřin je technicky úspěch a prakticky problém.
Kritická nebo doplňková?
Nejdůležitější rozhodnutí. Zeptej se: může aplikace fungovat dál, když tahle služba nefunguje?
Kritická
- Platební brána u placení.
- Databáze.
- Přihlašování.
- Bez ní akce nemá smysl – řekni to uživateli srozumitelně a nabídni, co dál.
Doplňková
- Mapa u adresy.
- Doporučení a statistiky.
- Potvrzovací e-mail.
- Bez ní jde pokračovat – zbytek stránky musí fungovat.
Co udělat s neúspěchem
Zkus znovu, když to má smysl
Výpadek a limit ano. Špatná data ne.
Nabídni náhradní obsah
Poslední známá hodnota, jednodušší verze, prosté sdělení „momentálně nedostupné“.
Odlož to na později
U věcí, které nemusí být hned – e-mail, synchronizace, zápis do externího systému. Ulož požadavek a zpracuj ho, až to půjde.
Řekni to uživateli lidsky
Ne „Error 503“. Ale „Platbu se teď nedaří zpracovat. Zkus to prosím za chvíli, z účtu nic nebylo strženo.“
Ošetři výpadek závislosti
U každé cizí služby, na kterou se aplikace napojuje.
Aplikace používá [SLUŽBA] na [ÚČEL]. Projdi se mnou, co se má stát, když nefunguje: 1. Je tahle závislost kritická, nebo doplňková? 2. Co konkrétně uvidí uživatel, když volání selže? Napiš mi ten text česky. 3. Má se to zkoušet znovu? Kolikrát a s jakou prodlevou? 4. Dá se to odložit na později místo okamžitého selhání? 5. Je nastavený časový limit? Jaký? Pak to podle toho uprav a ukaž mi, co se změnilo.
Vyzkoušej si to
Ošetření, které jsi nikdy nevyzkoušel, nemáš.
Nasimuluj výpadek
Ověření, že ošetření chyb funguje.
Chci si vyzkoušet, jak se aplikace chová, když [SLUŽBA] nefunguje. Navrhni mi, jak to nasimulovat lokálně – dočasně vrátit chybu, nastavit neplatný klíč nebo přerušit spojení. Pak mi napiš seznam situací k proklikání a co má v každé nastat. Změnu, kterou kvůli tomu uděláš, mi ukaž, ať ji potom umím vrátit.
Vyber si ve své aplikaci jednu cizí službu a nasimuluj její výpadek – nejjednodušeji tak, že dočasně změníš klíč na nesmysl.
Proklikej aplikaci. Zapiš si, co se stalo, a oprav všechno, co ti nepřipadá v pořádku.
Co si odnést
- Cizí volání selže vždycky, otázka je jen kdy. Vždy nastav časový limit.
- Rozliš kritickou a doplňkovou závislost. Doplňková nesmí strhnout stránku.
- Možnosti: zkusit znovu, náhradní obsah, odložit, nebo srozumitelně říct.
- Tiché selhání je horší než chyba. Zachycená chyba musí být vidět.
- Ošetření, které jsi nevyzkoušel, nemáš.
Máš to za sebou?
Označ lekci jako hotovou, ať víš, kde jsi skončil. Nic se tím neuzamkne.
Další lekceCo je MCPObsah aktualizován: 21. srpna 2026