-
stejně jako REST protokol se jedná o architekturu
-
získává data, jedná se o dotazovací jazyk
-
snaží se eliminovat nevýhody RESTu
-
je to typované
- dokonce může mít i vlastní typy
-
na pomezí architektury a dotazovacího jazyka
- uživatel si může sám víc vydefinovat, jaká data vlastně chce
-
při definování, co chci za data (vypisováním properties) můžu jít i rekurzivně
- dobré je to, že si mohu vyžádat jenom ta data, která chci a žádná jiná
-
má jeden endpoint pro všechny dotazy, které zpracovává
-
problémy
- pro server je to výkonově víc náročnější - klient
- nějaké části nejde cachovat
- při dotazování na GET jsem omezený délkou URL
- takže se musí používat POST - ten ale nejde dobře cachovat
- pro server je to výkonově víc náročnější - klient
-
dotazování je hodně standardizované - to je výhoda
-
operace a properties nejsou předem definované - musím víc koukat do dokumentace (ale pro GraphQL se to umí vygenerovat)
- můžu mít i svoje datové typy a formáty
Mutations
- dotazy (queries) se používají pro získávání dat
- mutace se používají k vytváření/změně a mazání dat na serveru