

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)
<a name="js-aws-appsync-resolver-reference-dynamodb-typed-values-request"></a>

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 GraphQL ou JSON (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](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.LowLevelAPI.html#Programming.LowLevelAPI.DataTypeDescriptors) do DynamoDB e a documentação dos [Tipos de dados](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes).

Um valor do DynamoDB é representado por um objeto JSON que contém um único par de chave-valor. 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 objeto JSON não pode ter mais de um par de chave-valor. 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 pela 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 pela 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](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html).