针对 HTTP 的解析程序映射模板参考 - AWS AppSync
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

针对 HTTP 的解析程序映射模板参考

借助 AWS AppSync HTTP 解析程序映射模板,您能够结束从 AWS AppSync 到任何 HTTP 终端节点的请求,以及从 HTTP 终端节点返回 AWS AppSync 的响应的形状。通过使用映射模板,您还可以向 AWS AppSync 提供提示以指出要调用的操作的性质。本节介绍用于支持的 HTTP 解析程序的不同映射模板。

请求映射模板

{ "version": "2018-05-29", "method": "PUT|POST|GET|DELETE|PATCH", "params": { "query": Map, "headers": Map, "body": string }, "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": "/" }

Version

仅限请求映射模板

定义模板使用的版本。version 对于所有请求映射模板都相同且是必需的。

"version": "2018-05-29"

方法

仅限请求映射模板

AWS AppSync 发送到 HTTP 终端节点的 HTTP 方法或动词(GET、POST、PUT、PATCH 或 DELETE)。

"method": "PUT"

ResourcePath

仅限请求映射模板

您要访问的资源路径。资源路径与 HTTP 数据源中更多终端节点一起,构成 AWS AppSync 发出请求到的 URL。

"resourcePath": "/v1/users"

评估映射模板时,此路径作为 HTTP 请求的一部分发送,包括 HTTP 终端节点。例如,上一个示例可能会转换为如下所示:

PUT <endpoint>/v1/users

参数字段

仅限请求映射模板

用于指定搜索执行的操作,最常用的方式是设置正文内的查询值。但是,可以配置若干其他功能,如响应的格式设置。

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"