View a markdown version of this page

Sistema di tipo (mappatura della richiesta) - AWS AppSync GraphQL

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Sistema di tipo (mappatura della richiesta)

Quando si utilizza la funzione AWS AppSync DynamoDB per chiamare le tabelle DynamoDB, è AWS AppSync necessario conoscere il tipo di ciascun valore da utilizzare in quella chiamata. Questo perché DynamoDB supporta più primitive di tipo rispetto a GraphQL o JSON (come set e dati binari). AWS AppSync ha bisogno di alcuni suggerimenti per la traduzione tra GraphQL e DynamoDB, altrimenti dovrebbe fare alcune ipotesi su come sono strutturati i dati nella tabella.

Per ulteriori informazioni sui tipi di dati DynamoDB, consulta la documentazione sui descrittori dei tipi di dati e sui tipi di dati di DynamoDB. https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes

Un valore DynamoDB è rappresentato da un oggetto JSON contenente una singola coppia chiave-valore. La chiave specifica il tipo di DynamoDB e il valore specifica il valore stesso. In questo esempio, la chiave S indica che il valore è una stringa e il valore identifier è il valore della stringa stessa.

{ "S" : "identifier" }

L'oggetto JSON non può contenere più di una coppia chiave-valore. Se viene specificata più di una coppia chiave-valore, l'oggetto della richiesta non viene analizzato.

Un valore DynamoDB viene utilizzato ovunque in un oggetto di richiesta in cui è necessario specificare un valore. ad esempio nelle sezioni key e attributeValue, nonché nella sezione expressionValues delle sezioni delle espressioni. Nell'esempio seguente, il valore della stringa DynamoDB identifier viene assegnato al id campo in una key sezione (magari in un GetItem oggetto di richiesta).

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

Tipi supportati

AWS AppSync supporta i seguenti tipi scalari, documentali e di set DynamoDB:

S (tipo String)

Un singolo valore di stringa. Un valore di stringa DynamoDB è indicato da:

{ "S" : "some string" }

Un esempio di utilizzo è:

"key" : { "id" : { "S" : "some string" } }
SS (tipo String set)

Un set di valori di stringa. Un valore di DynamoDB String Set è indicato da:

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

Un esempio di utilizzo è:

"attributeValues" : { "phoneNumbers" : { "SS" : [ "+1 555 123 4567", "+1 555 234 5678" ] } }
N (tipo Number)

Un singolo valore numerico. Un valore numerico DynamoDB è indicato da:

{ "N" : 1234 }

Un esempio di utilizzo è:

"expressionValues" : { ":expectedVersion" : { "N" : 1 } }
NS (tipo Number set)

Un set di valori numerici. Un valore del set di numeri DynamoDB è indicato da:

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

Un esempio di utilizzo è:

"attributeValues" : { "sensorReadings" : { "NS" : [ 67.8, 12.2, 70 ] } }
B (tipo Binary)

Un valore binario. Un valore binario DynamoDB è indicato da:

{ "B" : "SGVsbG8sIFdvcmxkIQo=" }

Nota che il valore è in realtà una stringa, dove la stringa è la rappresentazione codificata in base64 dei dati binari. AWS AppSync decodifica questa stringa nel suo valore binario prima di inviarla a DynamoDB. AWS AppSync utilizza lo schema di decodifica base64 definito da RFC 2045: qualsiasi carattere che non è nell'alfabeto base64 viene ignorato.

Un esempio di utilizzo è:

"attributeValues" : { "binaryMessage" : { "B" : "SGVsbG8sIFdvcmxkIQo=" } }
BS (tipo Binary set)

Un set di valori binari. Un valore del set binario DynamoDB è indicato da:

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

Nota che il valore è in realtà una stringa, dove la stringa è la rappresentazione codificata in base64 dei dati binari. AWS AppSync decodifica questa stringa nel suo valore binario prima di inviarla a DynamoDB. AWS AppSync utilizza lo schema di decodifica base64 definito da RFC 2045: qualsiasi carattere che non è nell'alfabeto base64 viene ignorato.

Un esempio di utilizzo è:

"attributeValues" : { "binaryMessages" : { "BS" : [ "SGVsbG8sIFdvcmxkIQo=", "SG93IGFyZSB5b3U/Cg==" ] } }
BOOL (tipo Boolean)

Un valore booleano. Un valore booleano DynamoDB è indicato da:

{ "BOOL" : true }

Solo i valori true e false sono validi.

Un esempio di utilizzo è:

"attributeValues" : { "orderComplete" : { "BOOL" : false } }
L (tipo List)

Un elenco di qualsiasi altro valore DynamoDB supportato. Un valore dell'elenco DynamoDB è indicato da:

{ "L" : [ ... ] }

Nota che il valore è un valore composto, in cui l'elenco può contenere zero o più valori DynamoDB supportati (inclusi altri elenchi). L'elenco può anche contenere una combinazione di diversi tipi.

Un esempio di utilizzo è:

{ "L" : [ { "S" : "A string value" }, { "N" : 1 }, { "SS" : [ "Another string value", "Even more string values!" ] } ] }
M (tipo Map)

Rappresenta una raccolta non ordinata di coppie chiave-valore di altri valori DynamoDB supportati. Un valore di DynamoDB Map è indicato da:

{ "M" : { ... } }

Una mappa può contenere zero o più coppie chiave-valore. La chiave deve essere una stringa e il valore può essere qualsiasi valore DynamoDB supportato (incluse altre mappe). La mappa può anche contenere una combinazione di diversi tipi.

Un esempio di utilizzo è:

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

Un valore nullo. Un valore DynamoDB Null è indicato da:

{ "NULL" : null }

Un esempio di utilizzo è:

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

Per ulteriori informazioni su ciascun tipo, consulta la documentazione di DynamoDB.