GraphQL er et kraftfuldt forespørgselssprog, der gør det muligt for klienter kun at anmode om de data, de har brug for, fra en server. Det hjælper dig med at øge anmodningshastighederne, da du kan tilpasse forespørgsler til kun at hente specifikke data.
GraphQL har to operationstyper: forespørgsler og mutationer. På trods af deres ligheder tjener de helt forskellige formål.
Forskelle mellem GraphQL-forespørgsler og mutationer
Forespørgsler og mutationer ligner hinanden ved, at du bruger dem til at fremsætte anmodninger til GraphQL API'er. De adskiller sig dog i syntaks, udførelsestilstand og brug.
Syntaksen af forespørgsler og mutationer
Den grundlæggende syntaks for en GraphQL-forespørgsel er som følger:
forespørgsel getProduct($id: ID!) {
produkt (id: $id) {
navn
pris
}
}
Her er hvad denne kode står for:
- forespørgsel er det nøgleord, der identificerer anmodningen som en forespørgsel.
- getProduct er operationens navn
- $id er variablen
- ID! er variabeltypen.
Hvis du ikke har brug for variablerne, skal du udelade dem og definere forespørgslen sådan:
forespørgsel getProducts {
Produkter {
navn
pris
}
}
I nogle situationer kan du udelade forespørgslens nøgleord og navn ved at skrive en GraphQL-forespørgsel som denne:
Produkter {
navn
pris
}
Selvom dette format fungerer, er det bedre at bruge søgeordet for læsbarheden.
Syntaksen af mutationer ligner forespørgsler, bortset fra at bruge mutationsnøgleordet.
mutation AddNewProduct ($navn: String!, $price: Number!) {
addProduct (navn: $navn, pris: $price) {
navn
pris
}
}
Forskellige udførelsestilstande
En anden forskel mellem en forespørgsel og en mutation er, at forespørgsler kører parallelt, mens mutationer kører synkront. Når du kører to mutationer, vil de udføre den ene efter den anden i rækkefølge
Kontrasterende anvendelser for forespørgsler og mutationer
Du bør kun bruge forespørgsler til LÆSE-operationer. Brug for eksempel en forespørgsel, når du henter produkter fra et API-slutpunkt.
Brug mutationer til CREATE, UPDATE og DELETE operationer. Disse er i det væsentlige operationer, der ændrer de data, der er lagret i databasen.
Brug for eksempel en mutation, når du opdaterer et kundenavn via et ordreslutpunkt.
Få en vane med at bruge forespørgsler og mutationer korrekt
GraphQL er et kraftfuldt forespørgselssprog, der giver dig mulighed for kun at anmode om de data, du har brug for. Der er to operationer, du kan udføre i GraphQL: forespørgsler og mutationer.
Disse operationer adskiller sig i syntaks, udførelse og deres tilsigtede anvendelser. Du bør bruge forespørgsler til READ-operationer og mutationer til CREATE-, UPDATE- og DELETE-operationer.