

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# AWS AppSync HTTP 的解析器映射模板参考
<a name="resolver-mapping-template-reference-http"></a>

**注意**  
我们现在主要支持 APPSYNC\_JS 运行时系统及其文档。请考虑使用 APPSYNC\_JS 运行时系统和[此处](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-js-version.html)的指南。

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

## 方法
<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** **  
标头信息（为键值对）。键和值都必须是字符串。  
例如：  

```
"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 请求正文。请求正文始终是 UTF-8 编码格式的字符串，除非内容类型指定字符集。  

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

## 响应
<a name="response"></a>

请参见[此处](https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-http-resolvers.html)的示例。