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

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 AWS AppSync , vous devez connaître le type de chaque valeur à utiliser dans cet appel. Cela est dû au fait que DynamoDB prend en charge un plus grand nombre de primitives de type que JSON GraphQL (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 devra émettre des hypothèses sur la manière dont les données sont structurées dans votre table.

Pour plus d'informations sur les types de données DynamoDB, consultez les descripteurs de types de données DynamoDB et la documentation sur les types de données.

Une valeur DynamoDB est représentée par JSON un objet 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'JSONobjet ne peut pas comporter 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 requêtes 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 identifier valeur DynamoDB String est affectée au id champ dans key une section (peut-être dans GetItem un document de mappage de demandes).

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

Types pris en charge

AWS AppSync prend en charge les types de scalaire, de document et d'ensemble DynamoDB suivants :

Type de chaîne S

Valeur de chaîne unique. Une valeur de chaîne DynamoDB est indiqué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 indiqué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. La valeur d'un numéro DynamoDB est indiquée par :

{ "N" : 1234 }

Voici un exemple d'utilisation :

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

Ensemble de valeurs de nombres. La valeur d'un ensemble de numéros DynamoDB est indiqué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 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. La valeur d'un 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 RFC 2045 : tout caractère ne figurant 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 indiquée par :

{ "L" : [ ... ] }

Notez que la valeur est une valeur composée, la liste pouvant contenir zéro ou plus de toute valeur DynamoDB prise 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ésentant une collection non ordonnée de paires clé-valeur d'autres valeurs DynamoDB prises en charge. La valeur d'une carte DynamoDB est indiqué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 DynamoDB Null 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.