GraphQL ist eine leistungsstarke Abfragesprache, mit der Clients nur die Daten anfordern können, die sie von einem Server benötigen. Es hilft Ihnen, die Anforderungsgeschwindigkeit zu erhöhen, da Sie Abfragen so anpassen können, dass nur bestimmte Daten abgerufen werden.
GraphQL hat zwei Operationstypen: Abfragen und Mutationen. Trotz ihrer Ähnlichkeiten dienen sie ganz unterschiedlichen Zwecken.
Unterschiede zwischen GraphQL-Abfragen und Mutationen
Abfragen und Mutationen sind insofern ähnlich, als Sie sie verwenden, um Anforderungen zu stellen GraphQL-APIs. Sie unterscheiden sich jedoch in Syntax, Ausführungsmodus und Verwendung.
Die Syntax von Abfragen und Mutationen
Die grundlegende Syntax einer GraphQL-Abfrage lautet wie folgt:
Abfrage getProduct($id: ID!) {
Produkt (ID: $id) {
Name
Preis
}
}
Hier ist, wofür dieser Code steht:
- query ist das Schlüsselwort, das die Anforderung als Abfrage identifiziert.
- getProduct ist der Vorgangsname
- $id ist die Variable
- AUSWEIS! ist der Variablentyp.
Wenn Sie die Variablen nicht benötigen, lassen Sie sie weg und definieren Sie die Abfrage wie folgt:
Abfrage getProducts {
Produkte {
Name
Preis
}
}
In einigen Situationen können Sie das Schlüsselwort und den Namen der Abfrage weglassen und eine GraphQL-Abfrage wie folgt schreiben:
Produkte {
Name
Preis
}
Obwohl dieses Format funktioniert, ist die Verwendung des Schlüsselworts query besser für die Lesbarkeit.
Die Syntax von Mutationen ähnelt der von Abfragen, außer dass das Schlüsselwort mutation verwendet wird.
mutation AddNewProduct ($name: String!, $price: Zahl!) {
addProduct (Name: $Name, Preis: $Preis) {
Name
Preis
}
}
Verschiedene Ausführungsmodi
Ein weiterer Unterschied zwischen einer Abfrage und einer Mutation besteht darin, dass Abfragen parallel ausgeführt werden, während Mutationen synchron ausgeführt werden. Wenn Sie zwei Mutationen ausführen, werden sie der Reihe nach nacheinander ausgeführt
Gegensätzliche Verwendungen für Abfragen und Mutationen
Sie sollten Abfragen nur für READ-Vorgänge verwenden. Verwenden Sie beispielsweise eine Abfrage, wenn Sie Produkte von einem API-Endpunkt abrufen.
Verwenden Sie Mutationen für CREATE-, UPDATE- und DELETE-Operationen. Dies sind im Wesentlichen Operationen, die die in der Datenbank gespeicherten Daten ändern.
Verwenden Sie beispielsweise eine Mutation, wenn Sie einen Kundennamen über einen Auftragsendpunkt aktualisieren.
Gewöhnen Sie sich an, Abfragen und Mutationen angemessen zu verwenden
GraphQL ist eine leistungsstarke Abfragesprache, mit der Sie nur die Daten anfordern können, die Sie benötigen. Es gibt zwei Operationen, die Sie in GraphQL ausführen können: Abfragen und Mutationen.
Diese Operationen unterscheiden sich in Syntax, Ausführung und ihrer beabsichtigten Verwendung. Sie sollten Abfragen für READ-Vorgänge und Mutationen für CREATE-, UPDATE- und DELETE-Vorgänge verwenden.