HTTP 的 AWS AppSync JavaScript 解析器函数参考 - AWS AppSync GraphQL

HTTP 的 AWS AppSync JavaScript 解析器函数参考

通过使用 AWS AppSync HTTP 解析器函数,您可以将请求从 AWS AppSync 发送到任何 HTTP 终端节点,并将响应从 HTTP 终端节点发回到 AWS AppSync。通过使用请求处理程序,您可以向 AWS AppSync 提供提示,以指出要调用的操作的性质。本节介绍了支持的 HTTP 解析器的各种配置。

请求

type HTTPRequest = { method: 'PUT' | 'POST' | 'GET' | 'DELETE' | 'PATCH'; params?: { query?: { [key: string]: any }; headers?: { [key: string]: string }; body?: any; }; resourcePath: string; };

以下代码片段是一个 HTTP POST 请求示例,其正文为 text/plain

export function request(ctx) { return { method: 'POST', params: { headers: { 'Content-Type': 'text/plain' }, body: 'this is an example of text body', }, resourcePath: '/', }; }

方法

注意

这仅适用于请求处理程序。

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

响应

请参见此处的示例。