REST API vs GraphQL: kde děláte chybu, která vás brzdí

Z Mazovia


Praktický postup: začněte u REST. Pokud zjistíte, že klienti trpí over-fetchingem (dostávají víc dat, než potřebují) nebo under-fetchingem (musí skládat data z mnoha volání), teprve pak zvažte GraphQL. Nasaďte ho nejprve na jednu doménu, ne na celé API. Sledujte latenci, počet dotazů do databáze a velikost odpovědí. Častá chyba je zavést GraphQL plošně a pak zjistit, že tým nemá kapacity na správu schématu, verzování a bezpečnostních omezení – GraphQL dotazy mohou být velmi hluboké a drahé, pokud je neošetříte limity hloubky a komplexity.

Každá webová stránka je ve skutečnosti jen soubor HTML, který prohlížeč přečte a vykreslí. HTML definuje strukturu a obsah: nadpisy, odstavce, seznamy, obrázky, odkazy. CSS pak určuje, jak tyto prvky vypadají – barvy, písmo, rozestupy, rozvržení. Pokud začínáte, zapomeňte na vizuální editory a napište první stránku ručně byt v paneláku textovém editoru. Uložte ji s příponou .html a otevřete v prohlížeči. Uvidíte okamžitě výsledek a pochopíte, co která značka dělá.

Rozvržení stránky dnes nejčastěji řeší flexbox a grid. Flexbox se hodí pro řazení prvků v jedné ose – menu, karty, tlačítka. Grid je silnější pro dvourozměrné mřížky, tedy celou stránku. Oba nástroje zvládnou responzivitu bez zbytečných triků. Místo pevných šířek v pixelech používejte relativní jednotky a media queries. Stránka se pak přizpůsobí mobilu i monitoru. Vyhněte se absolutnímu pozicování pro hlavní rozvržení, protože se rozbije při změně obsahu.

Kde GraphQL skutečně vyniká a kde naopak škodí GraphQL dává smysl tam, kde klienti mají velmi odlišné potřeby – mobilní aplikace potřebuje jiná pole než web, a vy nechcete udržovat desítky variant endpointů. Také se hodí pro rychlé prototypování, kdy se struktura dat ještě hledá. Naopak pro jednoduché CRUD operace, veřejná API nebo tam, kde stačí pár endpoitů, je REST jednodušší na implementaci, cachování i monitoring. GraphQL navíc ztěžuje HTTP cachování na úrovni CDN, protože vše jde na jeden endpoint přes POST. To se dá obejít persisted queries, ale je to další vrstva, kterou musíte spravovat.

CSS: selektory a kaskáda CSS připojíte třemi způsoby: inline přes atribut style, do hlavičky přes tag style, nebo jako externí soubor. Externí soubor je nejlepší volba, protože se načte pro všechny stránky a udržíte pořádek. Selektory určují, na které prvky se styl použije. Třída začíná tečkou, identifikátor mřížkou. Pozor na specificitu: čím konkrétnější selektor, tím vyšší priorita. Když se styly perou, prohlížeč vyhraje ten s vyšší specificitou, případně ten pozdější. Řešení není přidávat další a další pravidla, úprava Interiéru ale pochopit kaskádu a zdědit vlastnosti.

Jak strukturu zavést, aby ji tým nepřestal používat Před prvním kolem věnujte pět minut vysvětlení formátu a ukažte jeden příklad. Pak nechte každého postupně promluvit, ale striktně dodržte pořadí částí. Facilitátor hlídá čas a ptá se pouze na upřesnění, ne na obhajobu. Typická chyba je, že se ihned skočí k řešení. Držte diskusi u pozorování a dopadu, návrhy zapisujte bokem. Tím se předejde tomu, že nejsilnější hlas přehluší ostatní.

Pro každý endpoint uveďte metodu, rady Pro rekonstrukci cestu, očekávané parametry a tvar odpovědi. U parametrů rozlišujte, které jsou povinné, které volitelné a jaké mají výchozí hodnoty. U odpovědí napište konkrétní příklad JSONu, ne jen obecný popis. Příklad je srozumitelnější než odstavec textu a zároveň slouží jako testovací data. Pokud používáte verzování, uveďte ho přímo v cestě a vysvětlete, kdy se verze mění. Vyhněte se tomu, aby verze byla jen v hlavičce bez vysvětlení.

Rebase místo merge tam, kde jde o čistou histor

Běžné chyby, které zbytečně brzdí: zapomenutý viewport meta tag, chybějící alt u obrázků, nesemantické tagy místo správných prvků, příliš mnoho identifikátorů v CSS a testování jen v jednom prohlížeči. Otevřete vývojářské nástroje, prohlédněte si strukturu a zkuste měnit styly za běhu. Naučíte se tak rychleji než čtením desítek návodů. Jakmile pochopíte vztah mezi obsahem a vzhledem, přestanete kopírovat cizí kód a začnete psát vlastní.

Základní kostra dokumentu se skládá z hlavičky a těla. Do hlavičky patří kódování znaků, titulek stránky a odkaz na externí stylopis. Tělo obsahuje samotný obsah. Typická chyba začátečníků je zapomenutý uzavírací tag nebo špatné vnoření. Prohlížeč si s některými chybami poradí, ale rozvržení se pak rozsype. Vždy kontrolujte, že každý otevřený tag má svůj uzavírací protějšek a že se prvky správně vnořují – žádné křížení.

Volba mezi REST API a GraphQL není otázkou módnosti, ale toho, jak data skutečně tečou mezi klientem a serverem. REST je založené na pevných endpointech a HTTP metodách – každý zdroj má svou adresu a klient dostane předem danou strukturu. GraphQL nabízí jeden endpoint a klient si v dotazu sám určí, která pole potřebuje. To zní lákavě, ale přináší jiné problémy než REST. Než se rozhodnete, zmapujte, kolik různých klientů bude API konzumovat a jak často se mění jejich požadavky na data.

If you loved this article and you would like to get additional information pertaining to informace kindly browse through our page.