공지사항

Volba mezi REST API a GraphQL: praktický návod

페이지 정보

profile_image
작성자 Jess
댓글 0건 조회 2회 작성일 26-08-22 07:45

본문

REST je vhodný, když potřebujete jednoduchou, stabilní a dobře kešovatelnou strukturu. Pokud vaše data mají jasnou hierarchii a klienti konzumují celé zdroje (např. článek, uživatel, objednávka), REST vás nezradí. Klíčové je správně navrhnout endpointy – každý zdroj by měl mít vlastní URL a používat standardní HTTP metody. Typická chyba? Vytvoření endpointu typu /getAllData, který vrací vše najednou. To zabíjí výkon a znemožňuje efektivní kešování na serveru i u klienta.

Při implementaci si dejte pozor na časová razítka. Čas expirace (exp) a vydání (iat) porovnávejte s aktuálním časem serveru, ne s časem klienta. Pokud se server a klient liší v čase, může dojít k chybnému odmítnutí nebo naopak k přijetí prošlého tokenu. Používejte časové údaje v sekundách od epochy a nezapomeňte na toleranci pro drobné časové rozdíly, ale ne příliš velkou (maximálně pár minut). Vhodné je také ukládat token do paměti prohlížeče (localStorage) a ne do cookies, pokud nechcete řešit ochranu proti CSRF. Při ukládání do cookies nastavte atributy HttpOnly a Secure, aby token nebyl přístupný JavaScriptu.

Kdy přejít na GraphQL a co si pohlídat GraphQL se vyplatí, když máte více klientů (mobilní aplikace, web, třetí strany) s odlišnými požadavky na data. Místo mnoha endpointů definujete schéma, a klient si specifikuje, co přesně potřebuje. To šetří přenos dat i počet requestů. Typický use case: dashboard, kde každá část zobrazuje jiné agregace. Začněte s nástrojem jako Apollo nebo Relay, ale nejdříosvětlení v obýváku si rozvrhněte typy a vztahy – špatné schéma se později těžko mění. Pozor také na tzv. N+1 problém: bez optimalizace (např. DataLoader) může jeden dotaz vygenerovat desítky SQL dotazů.

Při psaní testů se vyhněte častému anti-vzoru: příliš mnoho end-to-end testů a žádné jednotkové testy. To se stává, když tým nemá čas psát testy průběžně a pak dohání pokrytí velkými testy, které jsou pomalé a často červené. Výsledek? Vývojáři začnou testy ignorovat a nakonec je smažou. Místo toho si nastavte pravidlo: každá nová funkce musí mít alespoň jeden jednotkový test pro klíčovou logiku a teprve poté případně integrační nebo end-to-end test.

Nezapomeňte, že obě technologie můžete kombinovat. Například REST pro veřejné vizuální stránky, GraphQL pro interní nástroje a mobilní appku. Klíčové je nepodléhat módním vlnám a vybrat nástroj podle reálných požadavků projektu. Testujte obě varianty na malém vzorku – změřte čas odezvy, velikost payloadu a náročnost údržby. Teprve pak se rozhodnete.

Při návrhu API narazíte na dvě hlavní cesty: REST a GraphQL. Každá má své silné stránky, ale i pasti. In case you beloved this article and you would want to be given details about tato stránka generously stop by our web site. Místo abstraktních teorií se podívejme, kdy která volba dává smysl, na co si dát pozor a jaké chyby dělá většina týmů.

Když přijde na responzivní design, nemusíte sahat po složitých frameworkách. Moderní CSS nabízí dva mocné nástroje – Grid a Flexbox – které si poradí s většinou layoutů. Klíčové je vědět, kdy který použít. Flexbox je ideální pro jednorozměrné rozvržení, tedy když potřebujete zarovnat prvky v jedné řadě nebo sloupci. Grid naopak ovládá dvourozměrné plochy, takže snadno vytvoříte mřížku s řádky i sloupci zároveň. Kombinací obou dosáhnete čistého a flexibilního kódu bez zbytečných media queries.

Začněte s Flexboxem pro typické komponenty, jako jsou navigace, tlačítka nebo karty v řadě. Pomocí display: flex a justify-content: space-between snadno rozmístíte prvky s mezerami. Pro centrování obsahu svisle i vodorovně použijte align-items: center a justify-content: center. Dejte pozor na vlastnost flex-wrap, která umožní prvkům zalamovat se na menších obrazovkách. Bez ní riskujete přetečení obsahu, což je častý problém začátečníků.

Pro malé projekty s jedním klientem a jednoduchými daty zvolte REST. Je to méně kódu, méně nástrojů a snadnější ladění. Pro komplexní API, které obsluhuje různé platformy a vyžaduje flexibilitu, je GraphQL lepší. Flexibilita ale přináší zodpovědnost – bez pečlivé kontroly schématu a výkonu se vám rychle vymkne z rukou.

Při zabezpečení API pomocí JWT tokenů je klíčové pochopit, že samotný token není tajemstvím. JWT je podepsaný JSON objekt, který obsahuje nároky (claims), jako je identifikátor uživatele, role nebo expirace. Nejčastější chybou je vkládat do tokenu citlivé údaje, jako jsou hesla nebo osobní informace, protože token je pouze base64url zakódovaný, nikoli šifrovaný. Útočník, který token získá, si ho může snadno dekódovat a přečíst. Proto do tokenu vkládejte pouze nezbytné údaje a vše ostatní řešte serverovým dotazem do databáze.

class=Začněte tím, že si zapnete logování pomalých dotazů. V MySQL stačí nastavit parametr slow_query_log a long_query_time na hodnotu kolem 0,5 sekundy. U PostgreSQL použijte log_min_duration_statement. Podívejte se, které dotazy se opakují nejčastěji, a analyzujte je příkazem EXPLAIN ANALYZE. Tím získáte přehled o tom, kde se ztrácí čas – jestli při sekvenčním procházení, řazení nebo spojování tabulek.

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입