

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 型システム (レスポンスマッピング)
<a name="aws-appsync-resolver-mapping-template-reference-dynamodb-typed-values-responses"></a>

DynamoDB からレスポンスを受信すると、 AWS AppSync はそれを GraphQL プリミティブ型と JSON プリミティブ型に自動的に変換します。DynamoDB の各属性はデコードされ、レスポンスマッピングコンテキストで返されます。

たとえば、DynamoDB が以下を返したとします。

```
{
    "id" : { "S" : "1234" },
    "name" : { "S" : "Nadia" },
    "age" : { "N" : 25 }
}
```

次に、 AWS AppSync DynamoDB リゾルバーはそれを次のように GraphQL 型と JSON 型に変換します。

```
{
    "id" : "1234",
    "name" : "Nadia",
    "age" : 25
}
```

このセクションでは、 AWS AppSync が次の DynamoDB スカラー、ドキュメント、およびセットタイプを変換する方法について説明します。

**文字列型 `S` **  
単一の文字列値です。DynamoDB 文字列値が文字列として返されます。  
たとえば、DynamoDB が次の DynamoDB の文字列値を返したとします。  

```
{ "S" : "some string" }
```
AWS AppSync はこれを文字列に変換します。  

```
"some string"
```

**文字列セット型 `SS` **  
1 組の文字列値です。DynamoDB 文字列セット値が文字列のリストとして返されます。  
たとえば、DynamoDB が次の DynamoDB 文字列セット値を返したとします。  

```
{ "SS" : [ "first value", "second value", ... ] }
```
AWS AppSync はこれを文字列のリストに変換します。  

```
[ "+1 555 123 4567", "+1 555 234 5678" ]
```

**数値型 `N` **  
単一の数値です。DynamoDB 数値が数字として返されます。  
たとえば、DynamoDB が次の DynamoDB の数値を返したとします。  

```
{ "N" : 1234 }
```
AWS AppSync はこれを数値に変換します。  

```
1234
```

**数値セット型 `NS` **  
1 組の数値です。DynamoDB 数値セットが数字のリストとして返されます。  
たとえば、DynamoDB が次の DynamoDB の数値セット値を返したとします。  

```
{ "NS" : [ 67.8, 12.2, 70 ] }
```
AWS AppSync はこれを数値のリストに変換します。  

```
[ 67.8, 12.2, 70 ]
```

**バイナリ型 `B` **  
バイナリ値です。DynamoDB のバイナリ値は、その値を Base64 で表した文字列として返されます。  
たとえば、DynamoDB が次の DynamoDB のバイナリ値を返したとします。  

```
{ "B" : "SGVsbG8sIFdvcmxkIQo=" }
```
AWS AppSync は、値を base64 で表現した文字列に変換します。  

```
"SGVsbG8sIFdvcmxkIQo="
```
バイナリデータは、[RFC 4648](https://tools.ietf.org/html/rfc4648) と [RFC 2045](https://tools.ietf.org/html/rfc2045) で指定されているようにして Base64 エンコーディングスキームにエンコードされます。

**バイナリセット型 `BS` **  
1 組のバイナリ値です。DynamoDB のバイナリセット値は、その値を Base64 で表した文字列のリストとして返されます。  
たとえば、DynamoDB が次の DynamoDB のバイナリ値を返したとします。  

```
{ "BS" : [ "SGVsbG8sIFdvcmxkIQo=", "SG93IGFyZSB5b3U/Cg==" ... ] }
```
AWS AppSync は、値を base64 で表現した文字列のリストに変換します。  

```
[ "SGVsbG8sIFdvcmxkIQo=", "SG93IGFyZSB5b3U/Cg==" ... ]
```
バイナリデータは、[RFC 4648](https://tools.ietf.org/html/rfc4648) と [RFC 2045](https://tools.ietf.org/html/rfc2045) で指定されているようにして Base64 エンコーディングスキームにエンコードされます。

**ブール型 `BOOL` **  
ブール値。DynamoDB ブール値がブールとして返されます。  
たとえば、DynamoDB が次の DynamoDB のブール値を返したとします。  

```
{ "BOOL" : true }
```
AWS AppSync はこれをブールに変換します。  

```
true
```

**リスト型 `L` **  
サポートされているその他の DynamoDB の値のリストです。DynamoDB のリスト値は値のリストとして返され、内部のそれぞれの値も変換されます。  
たとえば、DynamoDB が次の DynamoDB の文字列値を返したとします。  

```
{ "L" : [
      { "S"  : "A string value" },
      { "N"  : 1 },
      { "SS" : [ "Another string value", "Even more string values!" ] }
   ]
}
```
AWS AppSync はこれを変換された値のリストに変換します。  

```
[ "A string value", 1, [ "Another string value", "Even more string values!" ] ]
```

**マップ型 `M` **  
サポートされるその他の DynamoDB の値のキー/値の集合です。DynamoDB のマップ値は JSON オブジェクトとして返されます。それぞれのキー/値も変換されます。  
たとえば、DynamoDB が次の DynamoDB のバイナリ値を返したとします。  

```
{ "M" : {
      "someString" : { "S"  : "A string value" },
      "someNumber" : { "N"  : 1 },
      "stringSet"  : { "SS" : [ "Another string value", "Even more string values!" ] }
   }
}
```
AWS AppSync はこれを JSON オブジェクトに変換します。  

```
{
   "someString" : "A string value",
   "someNumber" : 1,
   "stringSet"  : [ "Another string value", "Even more string values!" ]
}
```

**Null 型 `NULL` **  
null 値です。  
たとえば、DynamoDB が次の DynamoDB のブール値を返したとします。  

```
{ "NULL" : null }
```
AWS AppSync はこれを null に変換します。  

```
null
```