

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

# AWS AppSync `None`数据源的解析器映射模板参考
<a name="resolver-mapping-template-reference-none"></a>

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

与 *None* 类型的数据源一起使用的 AWS AppSync 解析器映射模板使您能够调整对 AWS AppSync 本地操作的请求。

## 请求映射模板
<a name="request-mapping-template"></a>

映射模板很简单，使您能够通过 `payload` 字段传递尽可能多的上下文信息。

```
{
   "version": string,
   "payload": any type
}
```

下面是请求映射模板的 JSON 架构表示形式（解析后）：

```
{
    "definitions": {},
    "$schema": "https://json-schema.org/draft-06/schema#",
    "$id": "https://aws.amazon.com/appsync/request-mapping-template.json",
    "type": "object",
    "properties": {
        "version": {
            "$id": "/properties/version",
            "type": "string",
            "enum": [
                "2018-05-29"
            ],
            "title": "The Mapping template version.",
            "default": "2018-05-29"
        },
        "payload": {}
    },
    "required": [
        "version"
    ],
    "additionalProperties": false
}
```

以下是通过 VTL 上下文属性 `$context.arguments` 传递字段参数的示例：

```
{
    "version": "2018-05-29",
    "payload": $util.toJson($context.arguments)
}
```

`payload` 字段的值将转发到响应映射模板并可用于 VTL 上下文属性 (`$context.result`) 上。

这是一个表示 `payload` 字段的内插值的示例：

```
{
    "id": "postId1"
}
```

## 版本
<a name="version"></a>

`version` 字段是所有请求映射模板通用的，用于定义模板使用的版本。

 `version` 字段为必填项。

示例：

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

## 有效载荷
<a name="payload"></a>

`payload` 字段是一个容器，可用于将任何格式正确的 JSON 传递到响应映射模板。

 `payload` 字段为可选项。

## 响应映射模板
<a name="response-mapping-template"></a>

由于不存在任何数据来源，`payload` 字段的值将转发到响应映射模板并在 `context` 对象上设置（此对象可通过 VTL `$context.result` 属性提供）。

如果 `payload` 字段值的形状与 GraphQL 类型的形状完全相符，您可以使用以下响应映射模板转发响应：

```
$util.toJson($context.result)
```

没有必填字段，也没有形状限制应用于响应映射模板。但是，由于 GraphQL 是强类型化的，因此解析的映射模板必须与预期的 GraphQL 类型匹配。