Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Champs GraphQL
Les champs existent dans le cadre d'un type et contiennent la valeur demandée au service GraphQL. Elles sont très similaires aux variables d'autres langages de programmation. Par exemple, voici un type d'Person
objet :
type Person { name: String age: Int }
Dans ce cas, les champs sont name
age
et contiennent respectivement une Int
valeur String
et. Les champs d'objet tels que ceux présentés ci-dessus peuvent être utilisés comme entrées dans les champs (opérations) de vos requêtes et mutations. Par exemple, consultez ce qui Query
suit :
type Query { people: [Person] }
Le people
champ demande toutes les instances de Person
depuis la source de données. Lorsque vous ajoutez ou extrayez un fichier Person
dans votre serveur GraphQL, vous pouvez vous attendre à ce que les données suivent le format de vos types et de vos champs, c'est-à-dire que la structure de vos données dans le schéma détermine la manière dont elles seront structurées dans votre réponse :
} "data": { "people": [ { "name": "John Smith", "age": "50" }, { "name": "Andrew Miller", "age": "60" }, . . . ] } }
Les champs jouent un rôle important dans la structuration des données. Quelques propriétés supplémentaires expliquées ci-dessous peuvent être appliquées aux champs pour une personnalisation accrue.
Listes
Les listes renvoient tous les éléments d'un type spécifié. Une liste peut être ajoutée au type d'un champ à l'aide de crochets []
:
type Person { name: String age: Int } type Query { people: [Person] }
DansQuery
, les crochets qui l'entourent Person
indiquent que vous souhaitez renvoyer toutes les instances Person
de la source de données sous forme de tableau. Dans la réponse, les age
valeurs name
et de chacune Person
seront renvoyées sous forme de liste unique et délimitée :
} "data": { "people": [ { "name": "John Smith", # Data of Person 1 "age": "50" }, { "name": "Andrew Miller", # Data of Person 2 "age": "60" }, . # Data of Person N . . ] } }
Vous n'êtes pas limité à des types d'objets spéciaux. Vous pouvez également utiliser des listes dans les champs des types d'objets classiques.
Non nuls
Les valeurs non nulles indiquent un champ qui ne peut pas être nul dans la réponse. Vous pouvez attribuer à un champ une valeur non nulle en utilisant le !
symbole :
type Person { name: String! age: Int } type Query { people: [Person] }
Le name
champ ne peut pas être explicitement nul. Si vous interrogiez la source de données et que vous fournissiez une entrée nulle pour ce champ, une erreur serait générée.
Vous pouvez combiner des listes et des valeurs non nulles. Comparez ces requêtes :
type Query { people: [Person!] # Use case 1 } . . . type Query { people: [Person]! # Use case 2 } . . . type Query { people: [Person!]! # Use case 3 }
Dans le cas d'utilisation 1, la liste ne peut pas contenir d'éléments nuls. Dans le cas d'utilisation 2, la liste elle-même ne peut pas être définie sur null. Dans le cas d'utilisation 3, la liste et ses éléments ne peuvent pas être nuls. Cependant, dans tous les cas, vous pouvez toujours renvoyer des listes vides.