<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.rettungsdienstblog.eu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=HarryPeeples4</id>
	<title>Rettungsdienst-Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.rettungsdienstblog.eu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=HarryPeeples4"/>
	<link rel="alternate" type="text/html" href="https://wiki.rettungsdienstblog.eu/index.php?title=Spezial:Beitr%C3%A4ge/HarryPeeples4"/>
	<updated>2026-10-14T04:45:59Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.rettungsdienstblog.eu/index.php?title=Co_zrobi%C4%87,_kdy%C5%BE_se_odpov%C4%9B%C4%8F_API_v_Postmanu_neshoduje%3F&amp;diff=455844</id>
		<title>Co zrobić, když se odpověď API v Postmanu neshoduje?</title>
		<link rel="alternate" type="text/html" href="https://wiki.rettungsdienstblog.eu/index.php?title=Co_zrobi%C4%87,_kdy%C5%BE_se_odpov%C4%9B%C4%8F_API_v_Postmanu_neshoduje%3F&amp;diff=455844"/>
		<updated>2026-10-11T15:19:18Z</updated>

		<summary type="html">&lt;p&gt;HarryPeeples4: Die Seite wurde neu angelegt: „Asynchronní logiku držte mimo komponenty. Načítání dat patří do thunků, middleware nebo do nástroje, který vytváří akce ze požadavků. Komponenta má pouze spustit akci a zobrazit stav načítání, chyby nebo dat. Typická chyba je, že vývojář volá fetch přímo v efektu a výsledek ukládá přes dispatch do více klíčů. Vzniká nekonzistentní stav, kde se část dat aktualizovala a část ne. Řešením je jedna akce, která nes…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Asynchronní logiku držte mimo komponenty. Načítání dat patří do thunků, middleware nebo do nástroje, který vytváří akce ze požadavků. Komponenta má pouze spustit akci a zobrazit stav načítání, chyby nebo dat. Typická chyba je, že vývojář volá fetch přímo v efektu a výsledek ukládá přes dispatch do více klíčů. Vzniká nekonzistentní stav, kde se část dat aktualizovala a část ne. Řešením je jedna akce, která nese celý výsledek, a jeden reducer, který ho zpracuje atomicky.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Pokud aplikace běží ve více instancích, paměťové úložiště přestane fungovat spolehlivě. Každý proces má vlastní počítadla a limit se tak fakticky násobí. Řešením je úložiště v Redis nebo jiné sdílené databázi. express-rate-limit podporuje vlastní store; stačí předat instanci klienta. Pozor na to, že Redis musí být dostupný a nesmí se stát dalším bodem selhání. Nastavte časové limity připojení a ošetřete výpadky tak, aby aplikace nespadla, ale aby limit přešel do bezpečného režimu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Než začnete cokoliv odhadovat, rozbijte práci na části, které trvají nejvýš jeden den. Velké celky typu „nasadit platební bránu&amp;quot; nebo „přepsat autentizaci&amp;quot; se odhadují naprosto mizerně, protože v sobě skrývají desítky neznámých. Malý kousek se dá představit, velký ne. U každé části si napište, co přesně znamená hotovo – ne „funguje to&amp;quot;, ale konkrétní stav, kdy můžete říct, že je hotovo. Tím zmizí polovina sporů o to, jestli je úkol opravdu dokončený.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Zavedení testovacích dvojníků není jen o rychlosti. Zvyšuje spolehlivost testů a umožňuje vám spouštět je kdykoli, i bez připojení k síti. Jakmile jednou nahradíte externí služby, zjistíte, že testy jsou čitelnější a že odhalují skutečné chyby ve vašem kódu, ne v komunikaci s okolím. Začněte malými kroky – jedna služba, jeden test – a brzy uvidíte, jak se kvalita aplikace zvedá.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Při návrhu testů dbejte na izolaci. Každý test by měl mít vlastní instanci falešné služby, aby se výsledky neovlivňovaly. Pokud používáte dependency injection, je to snadné – v testu předáte mock, v produkci skutečnou implementaci. Vyhněte se globálním stavům a singletonům, které by mohly unikat mezi testy. Také nezapomeňte testovat, že aplikace volá externí službu správným způsobem – tedy že předává správné parametry a volá ji ve správný čas. K tomu slouží ověřovací metody na mockách.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;U každého požadavku nastav metodu, hlavičky a tělo. Pro JSON posílaný v těle zvol raw a typ JSON, hlavičku Content-Type nastav na application/json. U autentizace nepřidávej token ručně do každého požadavku. Zvol záložku Authorization, typ Bearer Token a hodnotu načti z proměnné. Pokud token vyprší, v odpovědi dostaneš stavový kód 401 a nebudeš muset procházet všechny požadavky. Do hlaviček patří i Accept s očekávaným typem odpovědi.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Testovat aplikaci, která komunikuje s externími systémy, je ošidné. Pokud spoléháte na skutečné služby, testy jsou pomalé, nespolehlivé a drahé. Řešením je nahradit tyto služby testovacími dvojníky – falešnými objekty, stuby nebo mocky. V tomto článku si ukážeme, jak na to, abyste odstranili závislost na živých externích službách a přesto otestovali všechny důležité scénáře.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Když testy projdou jednotlivě, spusť celou kolekci pomocí Collection Runneru. Nastav počet opakování a zpoždění mezi požadavky, aby server nezahltil. Do proměnných můžeš ukládat hodnoty z odpovědí, například id nově vytvořeného záznamu, a použít je v dalším požadavku. Tím ověříš návaznost celého scénáře, ne jen izolovaných volání. Po dokončení runneru zkontroluj přehled výsledků a selhané testy si projdi jeden po druhém.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nejprve si ujasněte, co vlastně potřebujete simulovat. Externí služba může být vzdálené API, databáze, fronta zpráv nebo třeba souborový systém. Pro každou z nich vytvořte rozhraní, které aplikace používá. To vám umožní snadno podstrčit náhradu. Například místo přímého volání HTTP klienta definujte rozhraní EmailSender s metodou send(). V produkci použijete skutečného klienta, v testech falešnou implementaci, která si pouze poznamená, co bylo odesláno.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funkce, která načte data, přepočítá je, vykreslí do tabulky a ještě odešle událost, dělá příliš mnoho věcí. Rozdělte ji. Každá funkce by měla dělat jednu věc a dělat ji celou. Prakticky to znamená, že byste měli být schopni funkci popsat jednou větou bez spojky „a&amp;quot;. Když se do věty „a&amp;quot; vrací, je čas funkci rozříznout. Kratší funkce se snáze testují, snáze se v nich hledá chyba a méně často vedlejší efekty uniknou pozornosti.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Triky pro simulaci chyb a zpoždění Externí služby občas selžou, odpovídají pomalu nebo vracejí neplatná data. Právě tyto stavy je nutné testovat. Do falešné implementace proto zabudujte možnost simulovat chyby – například nastavitelný příznak shouldFail nebo frontu odpovědí. Můžete tak ověřit, že aplikace správně zpracuje výjimku, zobrazí uživateli srozumitelnou zprávu a nezhroutí se. Podobně simulujte zpoždění: přidejte umělé čekání, abyste zjistili, zda aplikace nezamrzne nebo zda správně aplikuje timeout.&lt;/div&gt;</summary>
		<author><name>HarryPeeples4</name></author>
	</entry>
	<entry>
		<id>https://wiki.rettungsdienstblog.eu/index.php?title=Benutzer:HarryPeeples4&amp;diff=455842</id>
		<title>Benutzer:HarryPeeples4</title>
		<link rel="alternate" type="text/html" href="https://wiki.rettungsdienstblog.eu/index.php?title=Benutzer:HarryPeeples4&amp;diff=455842"/>
		<updated>2026-10-11T15:19:16Z</updated>

		<summary type="html">&lt;p&gt;HarryPeeples4: Die Seite wurde neu angelegt: „Autor blogu světem interiérů žije už dlouho. Píšu o tom, jak skloubit funkčnost s teplem domova. Nejvíc mě baví popisovat postupy krok za krokem.“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autor blogu světem interiérů žije už dlouho. Píšu o tom, jak skloubit funkčnost s teplem domova. Nejvíc mě baví popisovat postupy krok za krokem.&lt;/div&gt;</summary>
		<author><name>HarryPeeples4</name></author>
	</entry>
</feed>