View a markdown version of this page

Système de types (mappage des demandes) - AWS AppSync GraphQL

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.

Système de types (mappage des demandes)

Lorsque vous utilisez le résolveur AWS AppSync DynamoDB pour appeler vos tables DynamoDB, il AWS AppSync doit connaître le type de chaque valeur à utiliser dans cet appel. En effet, DynamoDB prend en charge un plus grand nombre de primitives de type que GraphQL ou JSON (telles que les ensembles et les données binaires). AWS AppSync a besoin de quelques conseils lors de la traduction entre GraphQL et DynamoDB, sinon il devrait émettre des hypothèses sur la façon dont les données sont structurées dans votre tableau.

Pour plus d'informations sur les types de données DynamoDB, consultez la documentation sur les descripteurs de types de données DynamoDB et les types de données. https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes

Une valeur DynamoDB est représentée par un objet JSON contenant une seule paire clé-valeur. La clé indique le type DynamoDB et la valeur indique la valeur elle-même. Dans l'exemple suivant, la clé S indique que la valeur est une chaîne, et la valeur identifier est la valeur de chaîne elle-même.

{ "S" : "identifier" }

Notez que l'objet JSON ne peut pas avoir plus d'une paire clé-valeur. Si plusieurs paires clé-valeur sont spécifiées, le document de mappage des requêtes n'est pas analysé.

Une valeur DynamoDB est utilisée n'importe où dans un document de mappage de demandes où vous devez spécifier une valeur. Vous devrez notamment procéder ainsi dans les sections suivantes : key et attributeValue, ainsi que la section expressionValues des sections d'expression. Dans l'exemple suivant, la valeur de chaîne DynamoDB identifier est affectée au id champ d'une key section (peut-être dans un document de mappage de GetItem demandes).

"key" : { "id" : { "S" : "identifier" } }

Types pris en charge

AWS AppSync prend en charge les types de scalaires, de documents et d'ensembles DynamoDB suivants :

Type de chaîne S

Valeur de chaîne unique. Une valeur de chaîne DynamoDB est désignée par :

{ "S" : "some string" }

Voici un exemple d'utilisation :

"key" : { "id" : { "S" : "some string" } }
Type d'ensemble de chaîne SS

Ensemble de valeurs de chaîne. La valeur d'un ensemble de chaînes DynamoDB est désignée par :

{ "SS" : [ "first value", "second value", ... ] }

Voici un exemple d'utilisation :

"attributeValues" : { "phoneNumbers" : { "SS" : [ "+1 555 123 4567", "+1 555 234 5678" ] } }
Type de nombre N

Valeur numérique unique. Une valeur numérique DynamoDB est désignée par :

{ "N" : 1234 }

Voici un exemple d'utilisation :

"expressionValues" : { ":expectedVersion" : { "N" : 1 } }
Type d'ensemble de nombres NS

Ensemble de valeurs de nombres. Une valeur d'ensemble de nombres DynamoDB est désignée par :

{ "NS" : [ 1, 2.3, 4 ... ] }

Voici un exemple d'utilisation :

"attributeValues" : { "sensorReadings" : { "NS" : [ 67.8, 12.2, 70 ] } }
Type binaire B

Valeur binaire. Une valeur binaire DynamoDB est désignée par :

{ "B" : "SGVsbG8sIFdvcmxkIQo=" }

Notez que la valeur est en fait une chaîne, où la chaîne est la représentation codée en base64 des données binaires. AWS AppSync décode cette chaîne dans sa valeur binaire avant de l'envoyer à DynamoDB. AWS AppSync utilise le schéma de décodage base64 tel que défini par la RFC 2045 : tout caractère qui n'est pas dans l'alphabet base64 est ignoré.

Voici un exemple d'utilisation :

"attributeValues" : { "binaryMessage" : { "B" : "SGVsbG8sIFdvcmxkIQo=" } }
Type d'ensemble binaire BS

Ensemble de valeurs binaires. Une valeur d'ensemble binaire DynamoDB est désignée par :

{ "BS" : [ "SGVsbG8sIFdvcmxkIQo=", "SG93IGFyZSB5b3U/Cg==" ... ] }

Notez que la valeur est en fait une chaîne, où la chaîne est la représentation codée en base64 des données binaires. AWS AppSync décode cette chaîne dans sa valeur binaire avant de l'envoyer à DynamoDB. AWS AppSync utilise le schéma de décodage base64 tel que défini par la RFC 2045 : tout caractère qui n'est pas dans l'alphabet base64 est ignoré.

Voici un exemple d'utilisation :

"attributeValues" : { "binaryMessages" : { "BS" : [ "SGVsbG8sIFdvcmxkIQo=", "SG93IGFyZSB5b3U/Cg==" ] } }
Type booléen BOOL

Valeur booléenne. Une valeur booléenne DynamoDB est désignée par :

{ "BOOL" : true }

Notez que seules les valeurs true et false sont valides.

Voici un exemple d'utilisation :

"attributeValues" : { "orderComplete" : { "BOOL" : false } }
Type de liste L

Liste de toutes les autres valeurs DynamoDB prises en charge. Une valeur de liste DynamoDB est désignée par :

{ "L" : [ ... ] }

Notez que la valeur est une valeur composée, où la liste peut contenir zéro ou plusieurs valeurs DynamoDB prises en charge (y compris les autres listes). La liste peut également contenir une combinaison de différents types.

Voici un exemple d'utilisation :

{ "L" : [ { "S" : "A string value" }, { "N" : 1 }, { "SS" : [ "Another string value", "Even more string values!" ] } ] }
Type de mappage M

Représente une collection non ordonnée de paires clé-valeur d'autres valeurs DynamoDB prises en charge. Une valeur de carte DynamoDB est désignée par :

{ "M" : { ... } }

Notez qu'un mappage peut contenir zéro ou plusieurs paires clé-valeur. La clé doit être une chaîne et la valeur peut être n'importe quelle valeur DynamoDB prise en charge (y compris d'autres cartes). Le mappage peut également contenir une combinaison de différents types.

Voici un exemple d'utilisation :

{ "M" : { "someString" : { "S" : "A string value" }, "someNumber" : { "N" : 1 }, "stringSet" : { "SS" : [ "Another string value", "Even more string values!" ] } } }
Type nul NULL

Valeur null. Une valeur nulle de DynamoDB est désignée par :

{ "NULL" : null }

Voici un exemple d'utilisation :

"attributeValues" : { "phoneNumbers" : { "NULL" : null } }

Pour plus d'informations sur chaque type, consultez la documentation DynamoDB.