View a markdown version of this page

GraphQL-Felder - AWS AppSync GraphQL

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

GraphQL-Felder

Felder existieren innerhalb des Gültigkeitsbereichs eines Typs und enthalten den Wert, der vom GraphQL-Dienst angefordert wird. Diese sind Variablen in anderen Programmiersprachen sehr ähnlich. Hier ist zum Beispiel ein Person Objekttyp:

type Person { name: String age: Int }

Die Felder in diesem Fall sind name und age und enthalten jeweils einen String Int UND-Wert. Objektfelder wie die oben gezeigten können als Eingaben in die Felder (Operationen) Ihrer Abfragen und Mutationen verwendet werden. Sehen Sie sich zum Beispiel das Query Folgende an:

type Query { people: [Person] }

Das people Feld fordert alle Instanzen von Person aus der Datenquelle an. Wenn Sie eine Person in Ihrem GraphQL-Server hinzufügen oder abrufen, können Sie davon ausgehen, dass die Daten dem Format Ihrer Typen und Felder folgen, das heißt, die Struktur Ihrer Daten im Schema bestimmt, wie sie in Ihrer Antwort strukturiert werden:

} "data": { "people": [ { "name": "John Smith", "age": "50" }, { "name": "Andrew Miller", "age": "60" }, . . . ] } }

Felder spielen eine wichtige Rolle bei der Strukturierung von Daten. Im Folgenden werden einige zusätzliche Eigenschaften erläutert, die zur weiteren Anpassung auf Felder angewendet werden können.

Listen

Listen geben alle Elemente eines bestimmten Typs zurück. Eine Liste kann mithilfe von Klammern zum Feldtyp hinzugefügt werden[]:

type Person { name: String age: Int } type Query { people: [Person] }

In Query Person geben die umgebenden Klammern an, dass Sie alle Instanzen von Person aus der Datenquelle als Array zurückgeben möchten. In der Antwort Person werden die jeweiligen name und age -Werte als einzelne, abgegrenzte Liste zurückgegeben:

} "data": { "people": [ { "name": "John Smith", # Data of Person 1 "age": "50" }, { "name": "Andrew Miller", # Data of Person 2 "age": "60" }, . # Data of Person N . . ] } }

Sie sind nicht auf spezielle Objekttypen beschränkt. Sie können auch Listen in den Feldern regulärer Objekttypen verwenden.

Non-nulls

Non-nulls geben Sie in der Antwort ein Feld an, das nicht Null sein darf. Sie können ein Feld auf einen Wert ungleich Null setzen, indem Sie das ! Symbol verwenden:

type Person { name: String! age: Int } type Query { people: [Person] }

Das name Feld kann nicht explizit Null sein. Wenn Sie die Datenquelle abfragen und eine Nulleingabe für dieses Feld angeben würden, würde ein Fehler ausgegeben.

Sie können Listen und Nicht-Nullen kombinieren. Vergleichen Sie diese Abfragen:

type Query { people: [Person!] # Use case 1 } . . . type Query { people: [Person]! # Use case 2 } . . . type Query { people: [Person!]! # Use case 3 }

In Anwendungsfall 1 darf die Liste keine Nullobjekte enthalten. In Anwendungsfall 2 kann die Liste selbst nicht auf Null gesetzt werden. In Anwendungsfall 3 können die Liste und ihre Elemente nicht Null sein. In jedem Fall können Sie jedoch immer noch leere Listen zurückgeben.