

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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"
    ]
}
```

以下是 HTTP POST 請求的範例，其中包括 `text/plain` 本文：

```
{
    "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
```

## 參數欄位
<a name="params-field"></a>

**注意**  
這僅適用於請求映射範本。

用來指定搜尋執行的動作，最常見的方式是設定**內文**中的**查詢**值。不過，有多項其他功能可設定，例如回應的格式。

** **標頭** **  
標頭資訊，以金鑰值對形式。金鑰與值皆必須為字串。  
例如：  

```
"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"
}
```

** **本文** **  
此本文包含您選擇設定的 HTTP 請求本文。除非內容類型指定字元集，否則請求本文一律是 UTF-8 編碼的字串。  

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

## 回應
<a name="response"></a>

請見[此處](https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-http-resolvers.html)範例。