Tipo di sistema (mappatura delle richieste) - AWS AppSync

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à.

Tipo di sistema (mappatura delle richieste)

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

Per ulteriori informazioni sui tipi di dati DynamoDB, consulta i descrittori dei tipi di dati e la documentazione sui tipi di dati di DynamoDB.

Un valore DynamoDB è rappresentato da JSON un oggetto contenente una singola coppia chiave-valore. La chiave specifica il tipo 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" }

Nota che l'JSONoggetto non può avere 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 identifier valore DynamoDB String viene assegnato al id campo in key una sezione (magari in GetItem un oggetto di richiesta).

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

Tipi supportati

AWS AppSync supporta i seguenti tipi di scalari, documenti e set di 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 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 di 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 DynamoDB Number Set è 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 di 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 nuovamente questa stringa nel suo valore binario prima di inviarla a DynamoDB. AWS AppSync utilizza lo schema di decodifica base64 come definito dal RFC 2045: qualsiasi carattere che non sia 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 di 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 nuovamente questa stringa nel suo valore binario prima di inviarla a DynamoDB. AWS AppSync utilizza lo schema di decodifica base64 come definito dal RFC 2045: qualsiasi carattere che non sia nell'alfabeto base64 viene ignorato.

Un esempio di utilizzo è:

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

Un valore booleano. Un valore booleano di 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 di DynamoDB List è indicato da:

{ "L" : [ ... ] }

Nota che il valore è un valore composto, in cui l'elenco può contenere zero o più di qualsiasi valore DynamoDB supportato (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 Null di DynamoDB è indicato da:

{ "NULL" : null }

Un esempio di utilizzo è:

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

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