GraphQL.cz/Fórum/Co je to under-fetching a jak ho opravit s GraphQL?

Co je to under-fetching a jak ho opravit s GraphQL?

Nedávno jsem narazil na pojem under-fetching a přemýšlím, co to vlastně znamená v kontextu GraphQL. Slyšel jsem, že je to nějaký problém, který se může objevit při práci s API, ale nejsem si úplně jistý, jak to přesně funguje. Zajímalo by mě, jaké jsou příznaky under-fetchingu a jak se to projevuje v aplikaci. Vím, že GraphQL by měl být schopen řešit některé z těchto problémů, ale jak? Jaké jsou nejlepší praktiky, jak se vyhnout under-fetchingu při používání GraphQL? Mám zkušenosti s REST API a tam jsem se setkal s problémy s přetahováním dat, ale tady jsem zmatený. Mohli byste mi prosím vysvětlit, jak funguje under-fetching v GraphQL a co mohu udělat pro jeho odstranění? Jaké techniky nebo strategie mohu použít k optimalizaci dotazů na serveru tak, aby se minimalizovalo nedostatečné načítání dat? Bude to mít nějaký vliv na výkon mé aplikace a uživatelskou zkušenost? Rád bych slyšel názory a tipy od těch, kteří už s tímto problémem měli zkušenosti. Děkuju!

160 slov
1.6 minut čtení
20. 3. 2020
Denisa Volfová

Under-fetching je problém, kdy API vrací méně dat, než potřebuješ. To se hodně stává u REST API, kde třeba musíš udělat víc požadavků, abys získal všechna potřebná data. V GraphQL můžeš specifikovat, co přesně chceš, takže bys měl mít s under-fetchingem menší problémy. Příznaky jsou jasný - třeba když máš komponentu, která zobrazuje víc informací a ty musíš posílat víc dotazů na server, aby ses dostal k datům.

Jak to opravit? No, prostě si v dotazu řekni, co všechno chceš. Můžeš optimalizovat dotazy tak, že si načteš rovnou všechno potřebný najednou místo rozdělování na víc částí. Další věcí je cachování – uložení dat, aby ses nemusel pořád ptát na stejný věci.

Pokud se tomu vyhneš a správně nastavíš dotazy, mělo by to pozitivní vliv na výkon a uživatelskou zkušenost. Méně požadavků obvykle znamená rychlejší načítání a lepší interakce pro uživatele. Takže prostě experimentuj s dotazy a sleduj, co funguje nejlíp.

150 slov
1.5 minut čtení
26. 10. 2024
Adam Štěpánek

Under-fetching je vlastně situace, kdy dostaneš méně dat, než potřebuješ, což ti pak komplikuje život. V GraphQL to není tak hrozné jako v REST, kde často musíš udělat vícero dotazů pro získání všech potřebných informací. Tady si můžeš vybrat přesně to, co chceš, což by mělo under-fetching eliminovat. Příznaky jsou třeba, že tvá aplikace zobrazuje prázdné nebo neúplné informace, protože jsi nezahrnul všechny potřebné pole do dotazu. Aby ses tomu vyhnul, snaž se plánovat dotazy předem a myslet na všechny potřebné datové struktury, které tvá aplikace vyžaduje. Zkus využít fragmenty pro opakující se části a optimalizuj dotazy tak, aby ses vyhnul zbytečnému načítání. Správná struktura dat v GraphQL ti pomůže minimalizovat nedostatečné načítání a tím pádem i zlepšit výkon a uživatelskou zkušenost. Takže v podstatě - plánuj dopředu a buď precizní v tom, co dotazuješ.

135 slov
1.4 minut čtení
3. 9. 2024
Ladislav Šilhavý

Under-fetching je prostě to, když API nevrátí všechny potřebné údaje najednou, takže musíš udělat další dotaz. V REST API to většinou vidíš, když třeba potřebuješ data o uživateli a jeho příspěvcích, ale endpoint ti vrátí jen základní info o uživateli, takže pak musíš udělat další dotaz na příspěvky. S GraphQL tohle odpadá, protože si můžeš říct přesně, co chceš. Můžeš si napsat dotaz, který ti vrátí všechna potřebná data hned najednou. To je super pro výkon a ušetří to čas, protože se vyhneš zbytečnému počtu požadavků na server.

Když chceš předejít under-fetchingu v GraphQL, tak se snaž plánovat dotazy dopředu. Vytvoř dotazy tak, aby zahrnovaly všechno, co potřebuješ. Pokud víš, že budeš potřebovat víc dat v budoucnu, tak si je rovnou zahrň do toho prvního dotazu. Taky je dobrý mít na paměti fragmenty – ty ti můžou pomoct znovu použít části dotazů a udržet kód čistější.

Z pohledu výkonu je jasný, že když uděláš jeden komplexní dotaz místo několika jednoduchých, tak to urychlí načítání a zlepší uživatelskou zkušenost. Takže za mě – plánuj dopředu a využívej sílu GraphQL naplno.

177 slov
1.8 minut čtení
29. 10. 2024
Natálie Pražáková
GraphQL.cz/Články/GraphQL vs. REST
Jak se vyhnout over-fetching a under-fetching s GraphQL?Praktické rady a tipy, jak GraphQL pomáhá vyřešit problémy s over-fetching a under-fetching typické pro REST API.
1000 slov
10 minut čtení
15. 2. 2020
Martin Černý
Přečíst článek
Podobné otázky