Sistema de tipo (mapeamento da solicitação) - AWS AppSync

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Sistema de tipo (mapeamento da solicitação)

Ao usar a função do AWS AppSync DynamoDB para chamar suas tabelas do DynamoDB AWS AppSync , precisa saber o tipo de cada valor a ser usado nessa chamada. Isso ocorre porque o DynamoDB suporta mais tipos primitivos do que o GraphQL JSON or (como conjuntos e dados binários). AWS AppSync precisa de algumas dicas ao traduzir entre o GraphQL e o DynamoDB, caso contrário, seria necessário fazer algumas suposições sobre como os dados são estruturados em sua tabela.

Para obter mais informações sobre os tipos de dados do DynamoDB, consulte os Descritores de tipos de dados do DynamoDB e a documentação dos Tipos de dados.

Um valor do DynamoDB é representado por JSON um objeto contendo um único par de valores-chave. A chave especifica o tipo do DynamoDB e o valor que especifica o valor em si. No exemplo a seguir, a chave S indica que o valor é uma string e o valor identifier é o próprio valor da string.

{ "S" : "identifier" }

Observe que o JSON objeto não pode ter mais de um par de valores-chave. Se mais de um par de chave/valor for especificado, o objeto da solicitação não será analisado.

Um valor do DynamoDB é usado em qualquer lugar no objeto da solicitação onde é necessário especificar um valor. Alguns lugares onde é necessário fazer isso incluem: as seções key e attributeValue, e a seção expressionValues das seções de expressões. No exemplo a seguir, o valor da string identifier do DynamoDB está sendo atribuído ao campo id em uma seção key (talvez em um objeto da solicitação GetItem).

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

Tipos compatíveis

AWS AppSync é compatível com os seguintes tipos de escalar, documento e conjunto do DynamoDB:

Tipo string S

O valor de uma única string. O valor de uma string do DynamoDB é indicado por:

{ "S" : "some string" }

Um exemplo de uso é:

"key" : { "id" : { "S" : "some string" } }
Tipo conjunto de strings SS

Um conjunto de valores de strings. O valor de conjunto de strings do DynamoDB é indicado por:

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

Um exemplo de uso é:

"attributeValues" : { "phoneNumbers" : { "SS" : [ "+1 555 123 4567", "+1 555 234 5678" ] } }
Tipo número N

Um único valor numérico. O valor de um número do DynamoDB é indicado por:

{ "N" : 1234 }

Um exemplo de uso é:

"expressionValues" : { ":expectedVersion" : { "N" : 1 } }
Tipo conjunto de números NS

Um conjunto de valores de números. O valor de conjunto de números do DynamoDB é indicado por:

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

Um exemplo de uso é:

"attributeValues" : { "sensorReadings" : { "NS" : [ 67.8, 12.2, 70 ] } }
Tipo binário B

Um valor binário. Um valor binário do DynamoDB é indicado por:

{ "B" : "SGVsbG8sIFdvcmxkIQo=" }

Observe que o valor é, na verdade, uma string, em que a string é a representação codificada em base64 dos dados binários. AWS AppSync decodifica essa string de volta em seu valor binário antes de enviá-la para o DynamoDB. AWS AppSync usa o esquema de decodificação base64 conforme definido em RFC 2045: qualquer caractere que não esteja no alfabeto base64 é ignorado.

Um exemplo de uso é:

"attributeValues" : { "binaryMessage" : { "B" : "SGVsbG8sIFdvcmxkIQo=" } }
Tipo conjunto de binários BS

Um conjunto de valores binários. Um valor de conjunto de binários do DynamoDB é indicado por:

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

Observe que o valor é, na verdade, uma string, em que a string é a representação codificada em base64 dos dados binários. AWS AppSync decodifica essa string de volta em seu valor binário antes de enviá-la para o DynamoDB. AWS AppSync usa o esquema de decodificação base64 conforme definido em RFC 2045: qualquer caractere que não esteja no alfabeto base64 é ignorado.

Um exemplo de uso é:

"attributeValues" : { "binaryMessages" : { "BS" : [ "SGVsbG8sIFdvcmxkIQo=", "SG93IGFyZSB5b3U/Cg==" ] } }
Tipo booliano BOOL

Um valor booleano. Um valor Booleano do DynamoDB é indicado por:

{ "BOOL" : true }

Observe que apenas true e false são valores válidos.

Um exemplo de uso é:

"attributeValues" : { "orderComplete" : { "BOOL" : false } }
Tipo lista L

Uma lista de qualquer outro valor do DynamoDB compatível. O valor de lista do DynamoDB é indicado por:

{ "L" : [ ... ] }

Observe que o valor é um valor composto, onde a lista pode conter zero ou mais de qualquer valor do DynamoDB compatível (incluindo outras listas). A lista também pode conter uma mistura de diferentes tipos.

Um exemplo de uso é:

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

Representando uma coleção não ordenada de pares de chave/valor de outros valores do DynamoDB compatíveis. O valor de mapa do DynamoDB é indicado por:

{ "M" : { ... } }

Observe que um mapa pode conter zero ou mais pares de chave/valor. A chave deve ser uma string, e o valor pode ser qualquer valor do DynamoDB compatível (incluindo outros mapas). O mapa também pode conter uma mistura de diferentes tipos.

Um exemplo de uso é:

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

Um valor nulo. O valor nulo do DynamoDB é indicado por:

{ "NULL" : null }

Um exemplo de uso é:

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

para obter mais informações sobre cada tipo, consulte a Documentação do DynamoDB.