/ English Version 🇬🇧

Beispiele für GraphQL-Abfragen und Mutations

Hier findest du Beispiele für GraphQL-Abfragen und Mutationen, die du mit nur einem Click ausprobieren kannst. In der GraphiQL Oberfläche kannst du auch gerne die Abfragen abwandeln und ausprobieren. Die Datenbank des GraphQL Services wird regelmäßig zurückgesetzt, du kannst also mit Mutations die Daten verändern wie du möchtest.

1. Query Abfragen

1.1. Alle Objekte eines Typs anzeigen

Die Abfrage liefert eine Liste von Produkten mit deren Namen. Ebenso können die Methoden categories , customers , vendors und orders verwendet werden.

Query, welcher alle Produkte ausgibt

{ products { name } }

1.2. Objekte mit bestimmter ID ausgeben

Benutze wieder eine der oben angegebenen Methoden aber mit dem Argument id.

Query, welcher Produkt mit id 7 ausgibt

{ products(id: "7") { name } }

1.3. Auswahl der Subfields

Die zurückgelieferten Objekte sind JSON-Objekte beliebiger Komplexität. Felder der Objekte können wiederum JSON-Objekte mit eigenen Felder sein usw. Im Query kannst du angeben, welche dieser Fields und Subfields du anzeigen möchte. Besitzt ein Field Subfields, so musst du aus diesen auch eine Auswahl treffen, damit der Query funktioniert.

Query, der Preis und Namen zu einem Produkt anzeigt

{ products(id: "8") { price name } }

Query liefert category und vendor des Produkts

{ products(id: "7") { name price category { name } vendor { name } } }

1.4. Mehrfachverschachtelung von Subfields

Du kannst durch Auswahl von Subfields ziemlich tief verschachteln und auch Kreise von Subfields bilden.

Query mit Verschachtelung categories -> products -> vendor -> products

{ categories(id: "1") { name products { name vendor { products { name } } } } }

1.5. Filtern über Werte der Fields

Neben der id kannst du bei den Query-Methoden weitere Argumente angeben, um dann nur die Objekte zurückzugeben, welche in ihren Felder entsprechende Werte haben.

Query, welcher alle Vendor ausgibt die ein bestimmtes Produkt verkaufen

{ vendors(productname: "Coconut") { name } }

Query, welcher die Produkte ausgibt die den Preis 3.4 haben

{ products(price: 3.4) { name } }

Query, welcher Produkte mit Preis 1.1 und Kategorie 1 ausgibt

{ products(price: 1.1, categoryID: 1) { name price category { name } vendor { name } } }

2. Anfragen vom Typ Mutation

Bei den bisherigen Abfragen startete durch Click auf "Anfrage absetzen" GraphiQL direkt die Abfrage. Bei den folgenden Mutations öffnet sich nur GraphiQL und du musst selbst noch die Abfrage durch Click auf das Pfeil-Symbol absenden.

2.1. Add Mutations

Neue Objekte der Obertypen kannst du mit den entsprechenden Add Mutations hinzufügen. Hierbei musst du alle Attribute des Objekts angeben.

Query, welcher Category mit id 6, name "Green Fruits" und den products 8, 2, 3 hinzufügt

mutation { addCategory(id: 6, name: "Green Fruits", products: [8, 2, 3]) { name products { name } } }

2.2. Update Mutations

Ändert Objekt eines Typ mit angegebener id. Du kannst alle oder nur bestimmte Attribute ändern, je nachdem welche Argumente du übergibst. Du erhälst das Objekt so wie es nach der Änderung aussieht noch mal als Rückgabe.

Query, der name und products der Category mit id 1 ändert

mutation { updateCategory(id: 1, name: "Juicy Fruits", products: [7]) { name products { name } } }

2.3. Delete Mutations

Löscht Objekt mit angegebener id. Das gelöschte Objekt wird dir nochmal zurückgeliefert.

Query, der Category mit id 2 löscht

mutation { deleteCategory(id: 2) { name }
Was ist GraphQL?
REST, gRPC und GraphQL im Vergleich