GraphQL je zmogljiv poizvedovalni jezik, ki strankam omogoča, da od strežnika zahtevajo le podatke, ki jih potrebujejo. Pomaga vam povečati hitrost zahtev, saj lahko poizvedbe prilagodite tako, da pridobijo samo določene podatke.
GraphQL ima dve vrsti operacij: poizvedbe in mutacije. Kljub podobnosti služijo precej različnim namenom.
Razlike med poizvedbami GraphQL in mutacijami
Poizvedbe in mutacije so si podobne v tem, da jih uporabljate za pošiljanje zahtev API-ji GraphQL. Vendar se razlikujejo po sintaksi, načinu izvajanja in uporabi.
Sintaksa poizvedb in mutacij
Osnovna sintaksa poizvedbe GraphQL je naslednja:
poizvedba getProduct($id: ID!) {
izdelek (id: $id) {
ime
cena
}
}
Tukaj je, kaj ta koda pomeni:
- query je ključna beseda, ki zahtevo identificira kot poizvedbo.
- getProduct je ime operacije
- $id je spremenljivka
- ID! je vrsta spremenljivke.
Če spremenljivk ne potrebujete, jih izpustite in definirajte poizvedbo takole:
poizvedba getProducts {
izdelki {
ime
cena
}
}
V nekaterih situacijah lahko izpustite ključno besedo in ime poizvedbe ter napišete poizvedbo GraphQL takole:
izdelki {
ime
cena
}
Čeprav ta oblika deluje, je uporaba ključne besede poizvedbe boljša za berljivost.
Sintaksa mutacij je podobna poizvedbam, razen uporabe ključne besede mutacija.
mutacija AddNewProduct ($name: String!, $price: Number!) {
addProduct (ime: $name, cena: $price) {
ime
cena
}
}
Različni načini izvajanja
Druga razlika med poizvedbo in mutacijo je, da se poizvedbe izvajajo vzporedno, medtem ko se mutacije izvajajo sinhrono. Ko zaženete dve mutaciji, se bosta izvršili ena za drugo, po vrsti
Kontrastne uporabe za poizvedbe in mutacije
Poizvedbe uporabite samo za operacije READ. Na primer, uporabite poizvedbo pri pridobivanju izdelkov iz končne točke API-ja.
Uporabite mutacije za operacije CREATE, UPDATE in DELETE. To so v bistvu operacije, ki spreminjajo podatke, shranjene v bazi podatkov.
Uporabite na primer mutacijo pri posodabljanju imena stranke prek končne točke naročil.
Navadite se na ustrezno uporabo poizvedb in mutacij
GraphQL je zmogljiv poizvedovalni jezik, ki vam omogoča, da zahtevate samo podatke, ki jih potrebujete. V GraphQL lahko izvedete dve operaciji: poizvedbe in mutacije.
Te operacije se razlikujejo po sintaksi, izvajanju in predvideni uporabi. Uporabite poizvedbe za operacije READ in mutacije za operacije CREATE, UPDATE in DELETE.