本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
注意
我們現在主要支援 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 類型。