AWS AppSync None資料來源的解析器映射範本參考 - AWS AppSync

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

AWS AppSync None資料來源的解析器映射範本參考

注意

我們現在主要支援 APPSYNC_JS 執行期及其文件。請考慮在此處使用 APPSYNC_JS 執行期及其指南

與類型為的資料來源搭配使用的 AWS AppSync 解析器映射範本可讓您塑造 AWS AppSync 本機操作的請求。

請求映射範本

映射範本非常簡單,可讓您透過 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" }

版本

所有請求映射範本通用的 version 欄位定義範本使用的版本。

version 欄位是必要的。

範例:

"version": "2018-05-29"

承載

payload 欄位是容器,可用來將任何格式良好的容器傳遞JSON至回應映射範本。

payload 欄位為選用。

回應映射範本

由於沒有資料來源,payload欄位的值將轉送至回應映射範本,並在可透過 VTL $context.result 屬性使用的context物件上設定。

如果您的 payload 欄位值形狀完全匹配 GraphQL 類型形狀時,您可以使用以下回應映射範本轉送回應:

$util.toJson($context.result)

沒有任何必要欄位或形狀限制適用於回應映射範本。不過,由於 GraphQL 是強類型,解析後的映射範本必須符合預期的 GraphQL 類型。