Jak Postavit REST API S Node.js A Express

From Rikkiepedia
Jump to navigation Jump to search


Častým problémem je zapomenout na to, že async akce vrací Promise. V testu proto vždy použijte await na zavolání akce, jinak se test ukončí dřív, než se akce dokončí, a vy dostanete falešný průchod. Dále pozor na to, že pokud používáte Redux Toolkit, createAsyncThunk generuje akce pending, fulfilled a rejected automaticky – testujte je podle názvu, ne podle řetězce typu 'users/fetch/pending'.

COPY package*.json ./

Při návrhu endpointů se vyhněte slovesům v URL. Není REST, když máte /getUser nebo /createUser. Místo toho použijte metodu HTTP a název zdroje. Pro získání uživatele tedy stačí GET /users/5, pro smazání DELETE /users/5. Dále nezapomeňte na validaci dat. Express sám o sobě žádnou nemá. Použijte knihovnu jako Joi nebo vlastní funkce. Pokud přijdou neplatná data, vraťte 400 s popisem chyby. Jinak riskujete, že se vám do databáze dostanou nesmysly, které později zkazí celou aplikaci.
Nejprve si vytvořte základní server. Stačí inicializovat npm projekt, nainstalovat Express a napsat pár řádků: const express = require('express'); const app = express(); app.use(express.json());. Důležitý je řádek s express.json() – bez něj byste nezachytili JSON tělo požadavku. Pak definujte první routy. Vždy používejte správný status kód: pro úspěšné vytvoření zdroje vraťte 201, pro chybu klienta 400, pro neexistující zdroj 404. Častým začátečnickým omylem je vracet 200 i při chybě – tím klienta matete.

Základním krokem je výběr vhodného nástroje, který ve vašem programovacím jazyce podporuje měření pokrytí. U jazyků jako Java, Python nebo JavaScript existuje několik standardních knihoven, které generují reporty ve formátu HTML nebo XML. Po každém spuštění testů byste měli mít k dispozici číslo vyjadřující procento pokrytí, ale také detailní přehled o tom, které části kódu zůstaly nepokryté. Tento přehled je mnohem cennější než samotné procento, protože vám ukáže konkrétní místa, kde hrozí chyby. Analyzujte jej pravidelně, ideálně po každém pushi barvy stěn do obýváku sdíleného repozitáře.

Při psaní kódu dbejte na čitelnost – odsazujte vnořené elementy, používejte smysluplné názvy tříd (např. .menu-polozka místo .a1) a komentujte složitější části. Dobrý kód není jen funkční, ale i srozumitelný pro vás za půl roku i pro případné kolegy. Pokud narazíte na problém, hledejte řešení v dokumentaci přímo na webu prohlížeče, ne v zastaralých fórech. S trochou praxe zvládnete základy HTML a CSS rychle a budete na nich moci stavět moderní a přístupné weby.

Async akce: mockujte API, ne testujte reálné volání Async akce v Redux Thunk nebo Redux Toolkit (createAsyncThunk) jsou funkce, které dostávají dispatch a getState. Klíčové je oddělit testování logiky od reálných HTTP volání. Použijte mock pro API vrstvu – místo skutečného fetch použijte funkci, která vrací předem definovaná data nebo vyhazuje chybu. V testu zavolejte async akci s mockovaným dispatch a getState, pak počkejte na dokončení a ověřte, jaké akce byly dispatchovány.

Stavba REST API v Node.js s frameworkem Express je běžná praxe, ale i tak se v ní snadno udělá několik zásadních chyb. Začneme od základu – od inicializace projektu a instalace potřebných balíčků. Kromě samotného Expressu se vyplatí použít i balíček pro parsování těla požadavků (např. body-parser) a pro logování požadavků (např. morgan). Tyto nástroje vám ušetří spoustu ruční práce a zpřehlední ladění.

Na závěr si osvojte responzivní design. Místo pevných pixelů pro šířku používejte relativní jednotky (%, em, rem, vw, vh). Pro text je vhodný rem, protože respektuje výchozí velikost písma prohlížeče. Vždy nastavte meta viewport v hlavičce, bez něj se mobilní prohlížeče snaží zobrazit stránku jako na počítači. Testujte svůj web ve více prohlížečích a na různých zařízeních, nejen v tom, který používáte. Nástroje pro vývojáře vám umožní simulovat telefony i tablety.

Nejčastější chyby a jak se jim vyhnout Jednou z největších pastí je asynchronní zpracování. Pokud používáte async/await, vždy obalte routy do try-catch. Jinak při chybě Express spadne a server se ukončí. Alternativně použijte wrapper, který zachytí rejected promise. Dále si dejte pozor na správné řazení middleware – pokud chcete logovat požadavky, musíte to udělat před routami. Pokud chcete ověřovat token, musíte to udělat před ochráněnými endpointy.

Jádrem každého API jsou routy. V Expressu definujete jednotlivé endpointy pomocí metod GET, POST, PUT a DELETE. Pro začátek si vytvořte jednoduchou routu, která vrací JSON data. Pozor na to, že Express sám o sobě neumí zpracovat tělo požadavku ve formátu JSON – proto je nutné použít middleware express.json(). Bez něj byste v req.body dostali undefined. Dalším častým problémem je nesprávné nastavení CORS, zejména pokud API voláte z prohlížeče. Pokud CORS nenastavíte, prohlížeč vám odpověď zablokuje.

For those who have virtually any questions regarding where by and the way to utilize koukněte sem, you are able to e-mail us on the site.