GraphQL je výkonný dotazovací jazyk, který umožňuje klientům požadovat ze serveru pouze data, která potřebují. Pomáhá vám zvýšit rychlost požadavků, protože můžete přizpůsobit dotazy tak, aby načítaly pouze konkrétní data.
GraphQL má dva typy operací: dotazy a mutace. Navzdory jejich podobnosti slouží zcela odlišným účelům.
Rozdíly mezi dotazy GraphQL a mutacemi
Dotazy a mutace jsou podobné v tom, že je používáte k vytváření požadavků GraphQL API. Liší se však syntaxí, režimem provádění a použitím.
Syntaxe dotazů a mutací
Základní syntaxe dotazu GraphQL je následující:
dotaz getProduct($id: ID!) {
produkt (id: $id) {
název
cena
}
}
Zde je to, co tento kód znamená:
- dotaz je klíčové slovo, které identifikuje požadavek jako dotaz.
- getProduct je název operace
- $id je proměnná
- ID! je typ proměnné.
Pokud proměnné nepotřebujete, vynechejte je a definujte dotaz takto:
dotaz getProducts {
produkty {
název
cena
}
}
V některých situacích můžete vynechat klíčové slovo a název dotazu a napsat dotaz GraphQL takto:
produkty {
název
cena
}
I když tento formát funguje, použití klíčového slova dotazu je lepší pro čitelnost.
Syntaxe mutací je podobná jako u dotazů s výjimkou použití klíčového slova mutace.
mutace AddNewProduct ($name: String!, $price: Number!) {
addProduct (name: $name, price: $price) {
název
cena
}
}
Různé režimy provedení
Dalším rozdílem mezi dotazem a mutací je to, že dotazy běží paralelně, zatímco mutace běží synchronně. Když spustíte dvě mutace, provedou se jednu po druhé v daném pořadí
Kontrastní použití pro dotazy a mutace
Dotazy byste měli používat pouze pro operace READ. Například použijte dotaz při načítání produktů z koncového bodu API.
Použijte mutace pro operace CREATE, UPDATE a DELETE. Jedná se v podstatě o operace, které mění data uložená v databázi.
Například použijte mutaci při aktualizaci jména zákazníka prostřednictvím koncového bodu objednávky.
Zvykněte si vhodně používat dotazy a mutace
GraphQL je výkonný dotazovací jazyk, který vám umožňuje požadovat pouze ta data, která potřebujete. V GraphQL můžete provádět dvě operace: dotazy a mutace.
Tyto operace se liší syntaxí, prováděním a zamýšleným použitím. Měli byste používat dotazy pro operace READ a mutace pro operace CREATE, UPDATE a DELETE.