GraphQL je výkonný dopytovací jazyk, ktorý umožňuje klientom požadovať zo servera iba tie údaje, ktoré potrebujú. Pomáha vám to zvýšiť rýchlosť požiadaviek, pretože môžete prispôsobiť dotazy tak, aby získavali iba konkrétne údaje.
GraphQL má dva typy operácií: dotazy a mutácie. Napriek ich podobnosti slúžia úplne iným účelom.
Rozdiely medzi dotazmi GraphQL a mutáciami
Dotazy a mutácie sú podobné v tom, že ich používate na zadávanie požiadaviek GraphQL API. Líšia sa však syntaxou, režimom vykonávania a používaním.
Syntax dotazov a mutácií
Základná syntax dotazu GraphQL je nasledovná:
dotaz getProduct($id: ID!) {
produkt (id: $id) {
názov
cena
}
}
Tu je to, čo tento kód znamená:
- dotaz je kľúčové slovo, ktoré identifikuje požiadavku ako dopyt.
- getProduct je názov operácie
- $id je premenná
- ID! je typ premennej.
Ak premenné nepotrebujete, vynechajte ich a definujte dotaz takto:
dotaz getProducts {
Produkty {
názov
cena
}
}
V niektorých situáciách môžete kľúčové slovo a názov dopytu vynechať a napísať dotaz GraphQL takto:
Produkty {
názov
cena
}
Aj keď tento formát funguje, z hľadiska čitateľnosti je lepšie použiť kľúčové slovo dotaz.
Syntax mutácií je podobná dotazom s výnimkou použitia kľúčového slova mutácia.
mutácia AddNewProduct ($name: String!, $price: Number!) {
addProduct (name: $name, price: $price) {
názov
cena
}
}
Rôzne režimy vykonávania
Ďalším rozdielom medzi dotazom a mutáciou je, že dotazy prebiehajú paralelne, zatiaľ čo mutácie prebiehajú synchrónne. Keď spustíte dve mutácie, vykonajú sa jedna po druhej, v poradí
Kontrastné použitie pre dotazy a mutácie
Dotazy by ste mali používať iba na operácie READ. Dotaz použite napríklad pri načítavaní produktov z koncového bodu API.
Použite mutácie pre operácie CREATE, UPDATE a DELETE. Ide v podstate o operácie, ktoré menia údaje uložené v databáze.
Napríklad použite mutáciu pri aktualizácii mena zákazníka prostredníctvom koncového bodu objednávky.
Zvyknite si vhodne používať dotazy a mutácie
GraphQL je výkonný dopytovací jazyk, ktorý vám umožňuje požadovať iba tie údaje, ktoré potrebujete. V GraphQL môžete vykonávať dve operácie: dotazy a mutácie.
Tieto operácie sa líšia v syntaxi, vykonávaní a zamýšľanom použití. Mali by ste použiť dotazy pre operácie READ a mutácie pre operácie CREATE, UPDATE a DELETE.