Jak vybrat správné API pro váš projekt

Z Mazovia

Samotný pipeline by měl kopírovat logický tok: checkout kódu, instalace závislostí, spuštění testů a nasazení. Pro každý krok definujte jasný název a používejte předpřipravené akce, které řeší typické úlohy. Mějte na paměti, že akce jsou kód třetích stran – jejich verze si zafixujte na konkrétní commit, aby se změny u zdrojového kódu neprojevily neočekávaně. Při instalaci závislostí se vyhněte použití běžného příkazu bez cache; místo toho nastavte caching, který výrazně zkrátí dobu běhu.

Další praktickou záležitostí je správa stavových kódů HTTP. Vracejte 200 pro úspěšné GET požadavky, 201 pro vytvoření nového zdroje, 204 pro úspěšné smazání a 400 nebo 404 pro chybové situace. Nepoužívejte univerzální 500 pro vše, co se nepovede. Konkrétní kódy pomáhají klientům rychleji diagnostikovat problém. Rovněž se vyhněte vracení surových chybových hlášení z databáze – vytvořte si jednoduchý middleware, který zachytí výjimky a převede je na JSON s přátelským popisem.

Základní princip je jednoduchý: definujete typy a TypeScript je kontroluje při kompilaci. Když píšete funkci, která přijímá číslo a vrací řetězec, deklarujete to explicitně. Tím se vyhnete situacím, kdy do funkce omylem předáte objekt a zjistíte to až v produkci. Nejdůležitější je naučit se rozlišovat mezi primitivními typy (string, number, boolean) a složitějšími strukturami, jako jsou rozhraní (interface) nebo typové aliasy. Právě rozhraní se používají k popisu tvaru objektů a usnadňují práci s API odpověďmi či konfiguračními soubory.

Prvním krokem je inicializace projektu pomocí příkazu npm init, který vytvoří soubor package.json. Poté nainstalujte express příkazem npm install express. Pro práci s daty v paměti můžete použít jednoduché pole objektů; pro produkční nasazení byste ale měli zvolit databázi, jako je MongoDB nebo PostgreSQL. Nezapomeňte na middleware express.json(), který umožňuje zpracovávat příchozí JSON data. Bez něj by tělo požadavku zůstalo nedostupné, což je častý začátečnický omyl.

Začněte u reducerů. Reducer je funkce, která přijímá stav a akci a vrací nový stav. Testování spočívá v tom, že zavoláte reducer s konkrétním stavem a akcí a porovnáte výsledek s očekávaným. Důležité je neměnit původní stav – reducer musí být čistý. Při psaní testů vždy vytvořte nový objekt stavu, abyste předešli vedlejším efektům. Typická chyba je testovat reducer přes celý store, což zbytečně komplikuje izolaci. Místo toho importujte reducer přímo a testujte ho jako samostatnou jednotku.

Typová inference a praktické tipy TypeScript se snaží uhodnout typy automaticky, což znamená, že nemusíte psát anotace všude. Pokud ale deklarujete proměnnou bez inicializace, dostanete typ any, který vypne veškerou kontrolu. To je častý zdroj chyb. Místo any používejte unknown nebo konkrétní typ, případně zúžený typ pomocí typeof či instanceof. Další častou pastí je práce s poli – pokud máte pole, které může obsahovat různé typy, definujte to explicitně jako union, aby nedošlo k neočekávanému chování při volání metod.

Pokud přicházíte z čistého JavaScriptu, první setkání s TypeScriptem může působit jako zbytečná byrokracie. Po pár dnech práce si ale začnete všímat, že mnoho chyb, které jste dříve odhalovali až za běhu, se nyní objeví přímo v editoru. TypeScript není samostatný jazyk, ale nadstavba, která do JavaScriptu přidává statické typování. Jeho hlavní přínos spočívá v tom, že umožňuje lépe popsat tvary dat a vztahy mezi nimi, což oceníte zejména u větších projektů nebo týmové spolupráce.

Pro lepší strukturu kódu oddělte routy do samostatných souborů. Místo psaní všeho do jednoho index.js použijte Router(), který vám umožní seskupit související koncové body. Tím se kód stává čitelnějším a testovatelnějším. Kromě toho se vyplatí zavést základní validaci vstupů – buď ručně, nebo pomocí knihoven jako Joi. Bez validace riskujete, že se do databáze dostanou nekonzistentní data, která později způsobí chyby v aplikaci.

Stavba REST API v Node.js s frameworkem Express patří mezi základní dovednosti backendového vývojáře. Express je minimalistický, ale dostatečně flexibilní nástroj, který vám umožní rychle vytvořit funkční rozhraní. Než začnete, ujistěte se, že máte nainstalovaný Node.js a že rozumíte základům JavaScriptu, jako jsou async/await a práce s objekty. Celý postup je vhodné rozdělit do menších kroků, abyste se vyhnuli chaotickému kódu a usnadnili si budoucí údržbu.

GitHub Actions umožňuje spouštět prakticky libovolný pracovní postup přímo v repozitáři. Základní konfigurace se skládá z YAML souboru, který definuje události, jež workflow spouštějí. Pro začátek stačí vytvořit adresář .github/workflows a do něj vložit soubor s popisem. Nejčastější chybou je opomenutí syntaxe YAML – i malá odchylka v odsazení způsobí, že se workflow nespustí. Proto vždy používejte konzistentní mezery a před prvním spuštěním ověřte soubor v lokálním editoru.