Jak postavit REST API s Node.js a Express
페이지 정보
작성자 Delmar Eleanor 작성일 26-08-22 04:52 조회 2 댓글 0본문
Při testování kódu, který pracuje s externími zdroji (databáze, souborový systém, HTTP), vždy použijte falešné objekty nebo rozhraní. Testy, které závisí na skutečné službě, jsou křehké a pomalé. rady pro rekonstrukci vkládání falešných závislostí se hodí injektování rozhraní do konstruktoru testované třídy. V testech pak předávejte jednoduché implementace nebo použijte knihovnu pro vytváření mocků, ale i bez ní se obejdete vytvořením vlastních testovacích stubů.
GraphQL je dotazovací jazyk, který vám umožní získat přesně ta data, která potřebujete, a nic navíc. Tím odpadá problém s over-fetchingem a under-fetchingem, které sužují REST. Skvěle se hodí pro aplikace s komplexními vztahy mezi daty, jako jsou sociální sítě nebo dashboardy. Na druhou stranu si musíte dát pozor na přílišné dotazy, které mohou zahltit databázi. Doporučuji zavést limity na hloubku dotazu a použít dotazovací plán, abyste předešli situaci, kdy klient neúmyslně stáhne obrovské množství dat.
REST API funguje na principu zdrojů – každá entita (např. uživatel, objednávka) má vlastní endpoint a přes HTTP metody provádíte operace. Pokud máte jednoduchou aplikaci s jasnou strukturou, REST je intuitivní a snadno se ladí. Navíc se snadno ukládá do mezipaměti, což oceníte u veřejných dat. Typickou chybou je ale vytváření příliš mnoha endpointů, kdy pak klient musí volat vícekrát, aby získal potřebná data. Často se také zapomíná na verzování – jakmile API zpřístupníte, musíte řešit jeho stabilitu.
Užitečnou funkcí NUnit je parametrizace testů pomocí atributu [TestCase]. Umožňuje spustit stejnou testovací metodu s různými vstupy, čímž získáte širší pokrytí bez duplikace kódu. Pamatujte, že testy jsou také kód, a proto by měly být udržovatelné. Pokud test vyžaduje složité nastavení, zvažte refaktoraci. Věnujte čas psaní testů, protože každý ušetřený den při hledání bugu se mnohonásobně vrátí.
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.
GraphQL řeší právě over-fetching i under-fetching. Klient si specifikuje, co chce, a server vrací přesně to. To je výhoda pro mobilní zařízení s omezeným připojením. Ale GraphQL není zadarmo. Musíte navrhnout schéma, řešit resolvery a myslet na bezpečnost. Typický problém: nekonečné vnořené dotazy, které zahltí databázi. Řešením je omezení hloubky dotazu a použití dataloaderů pro dávkové načítání. Také si dejte pozor na autentizaci – v GraphQL máte jeden endpoint, takže autorizaci musíte řešit úložné prostory v malém bytě resolverech, ne na úrovni URL.
U RESTu se držte konvencí: zdroje, HTTP metody, stavové kódy. If you have any concerns relating to where and the best ways to make use of nábytek na míru, you could call us at our website. Typická chyba? Používat GET pro operace, které mění data, nebo ignorovat HTTP kódy jako 404 či 409. Místo toho definujte jasné endpointy, např. /users a /users/123. Pro cache použijte hlavičky Cache-Control a ETag. To je praktické, pokud máte veřejné API nebo mnoho opakovaných dotazů. Pozor na over-fetching – REST vrací vždy celé objekty, takže pokud potřebujete jen jméno uživatele, stáhnete i jeho e-mail či adresu.
Při přechodu z RESTu na GraphQL nebuďte unáhlení. Nejlepší je rekonstrukce koupelny krok za krokemčít hybridně – nechat stávající REST endpointy a GraphQL představovat jako novou vrstvu pro vybrané případy. Tím minimalizujete riziko a získáte zpětnou vazbu. Při návrhu GraphQL schématu používejte sémantické názvy typů a polí. Vyhněte se polím s názvy jako data2 nebo info. A nezapomeňte na verzování – i GraphQL potřebuje strategii, jak řešit změny v schématu, i když to není tak formální jako u RESTu.
Nejčastější chyby a jak se jim vyhnout Častým omylem je testovat více než jednu věc v rámci jedné metody. Pokud test selže, nemáte jistotu, která část kódu je rozbitá. Rozdělte takové testy na menší, nezávislé jednotky. Další častou chybou je závislost testů na pořadí provedení nebo na sdíleném stavu. NUnit spouští testy paralelně v rámci sestavení, proto každý test musí být izolovaný. Pro nastavení výchozího stavu používejte atributy [SetUp] a [TearDown], ale nikdy nepředpokládejte, že stav z předchozího testu stále existuje.
Jak na to: od návrhu k prvnímu buildu Začněte jednoduchým projektem – třeba aplikací pro správu úkolů. Vytvořte si model dat, použijte `UITableView` pro zobrazení seznamu a naučte se pracovat s delegáty a datasource. Delegate pattern je v iOS klíčový, najdete ho všude – od textových polí po síťové požadavky. Nezapomeňte také na správné použití `@MainActor` pro aktualizace UI z hlavního vlákna, jinak riskujete pády aplikace.
댓글목록 0
등록된 댓글이 없습니다.
