

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

# HTTP の AWS AppSync リゾルバーマッピングテンプレートリファレンス
<a name="resolver-mapping-template-reference-http"></a>

**注記**  
現在、主に APPSYNC\_JS ランタイムとそのドキュメントをサポートしています。[こちら](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-js-version.html) で APPSYNC\_JS ランタイムとそのガイドの使用をご検討ください。

 AWS AppSync HTTP リゾルバーマッピングテンプレートを使用すると、 AWS AppSync から任意の HTTP エンドポイントにリクエストを送信し、HTTP エンドポイントから AWS AppSync にレスポンスを返すことができます。マッピングテンプレートを使用すると、呼び出すオペレーションの性質に関するヒントを AWS AppSync に提供できます。このセクションでは、サポートされる HTTP リゾルバーのマッピングテンプレートについて説明します。

## リクエストマッピングテンプレート
<a name="request-mapping-template"></a>

```
{
    "version": "2018-05-29",
    "method": "PUT|POST|GET|DELETE|PATCH",
    "params": {
        "query": Map,
        "headers": Map,
        "body": any
    },
    "resourcePath": string
}
```

HTTP リクエストマッピングテンプレートが解決されると、リクエストマッピングテンプレートの JSON スキーマ表現は以下のようになります。

```
{
    "$id": "https://aws.amazon.com/appsync/request-mapping-template.json",
    "type": "object",
    "properties": {
        "version": {
        "$id": "/properties/version",
        "type": "string",
        "title": "The Version Schema ",
        "default": "",
        "examples": [
            "2018-05-29"
        ],
        "enum": [
            "2018-05-29"
        ]
        },
        "method": {
        "$id": "/properties/method",
        "type": "string",
        "title": "The Method Schema ",
        "default": "",
        "examples": [
            "PUT|POST|GET|DELETE|PATCH"
        ],
        "enum": [
            "PUT",
            "PATCH",
            "POST",
            "DELETE",
            "GET"
        ]
        },
        "params": {
        "$id": "/properties/params",
        "type": "object",
        "properties": {
            "query": {
            "$id": "/properties/params/properties/query",
            "type": "object"
            },
            "headers": {
            "$id": "/properties/params/properties/headers",
            "type": "object"
            },
            "body": {
            "$id": "/properties/params/properties/body",
            "type": "string",
            "title": "The Body Schema ",
            "default": "",
            "examples": [
                ""
            ]
            }
        }
        },
        "resourcePath": {
        "$id": "/properties/resourcePath",
        "type": "string",
        "title": "The Resourcepath Schema ",
        "default": "",
        "examples": [
            ""
        ]
        }
    },
    "required": [
        "version",
        "method",
        "resourcePath"
    ]
}
```

以下は、ボディを `text/plain` とする HTTP POST リクエストの例です。

```
{
    "version": "2018-05-29",
    "method": "POST",
    "params": {
        "headers":{
        "Content-Type":"text/plain"
        },
        "body":"this is an example of text body"
    },
    "resourcePath": "/"
}
```

## バージョン
<a name="version"></a>

**注記**  
これは、リクエストマッピングテンプレートにのみ適用されます。

テンプレートが使用するバージョンを定義します。`version` はすべてのリクエストマッピングテンプレートに共通であり、必須です。

```
"version": "2018-05-29"
```

## Method
<a name="method"></a>

**注記**  
これは、リクエストマッピングテンプレートにのみ適用されます。

 AWS AppSync が HTTP エンドポイントに送信する HTTP メソッドまたは動詞 (GET、POST、PUT、PATCH、DELETE)。

```
"method": "PUT"
```

## ResourcePath
<a name="resourcepath"></a>

**注記**  
これは、リクエストマッピングテンプレートにのみ適用されます。

アクセス対象のリソースパスです。リソースパスは、HTTP データソースのエンドポイントとともに、 AWS AppSync サービスがリクエストを行う URL を形成します。

```
"resourcePath": "/v1/users"
```

マッピングテンプレートが評価されると、このパスは、HTTP エンドポイントが含まれる HTTP リクエストの一部として送信されます。たとえば、前の例では次のように変換される可能性があります。

```
PUT <endpoint>/v1/users
```

## Params フィールド
<a name="params-field"></a>

**注記**  
これは、リクエストマッピングテンプレートにのみ適用されます。

検索実行時のアクションを指定するために使用され、一般に、**query** 値を **body** 内に設定します。ただし、レスポンスのフォーマットなど、他のいくつかの機能を設定できます。

** **ヘッダ** **  
ヘッダー情報は、キーと値のペアです。キーと値の両方が文字列である必要があります。  
例:  

```
"headers" : {
    "Content-Type" : "application/json"
}
```
現在サポートされている `Content-Type` ヘッダーは以下のとおりです。  

```
text/*
application/xml
application/json
application/soap+xml
application/x-amz-json-1.0
application/x-amz-json-1.1
application/vnd.api+json
application/x-ndjson
```
 **注意**: 以下の HTTP ヘッダーを設定することはできません。  

```
HOST
CONNECTION
USER-AGENT
EXPECTATION
TRANSFER_ENCODING
CONTENT_LENGTH
```

** query**** **  
一般的なオプション (JSON レスポンスのコードフォーマットなど) を指定するキーと値のペア。キーと値の両方が文字列である必要があります。次の例では、`?type=json` としてクエリ文字列を送信する方法を示しています。  

```
"query" : {
    "type" : "json"
}
```

** **body** **  
ボディには、設定の際に選択する HTTP リクエストボディが含まれています。リクエストボディは、コンテンツタイプが charset に指定されている場合を除き、常に UTF-8 でエンコードされた文字列です。  

```
"body":"body string"
```

## 応答
<a name="response"></a>

例を参照してください。[こちらへ](https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-http-resolvers.html)。