Ger*_*ddc 1 amazon-web-services aws-appsync
我正在尝试为 AppSync 编写一个解析器,它根据 DynamoDB 中记录的存在导出布尔字段的值。
我目前有以下请求映射模板:
{
"version": "2017-02-28",
"operation": "GetItem",
"key": {
"field1": $util.dynamodb.toDynamoDBJson($ctx.args.field1),
"field2": $util.dynamodb.toDynamoDBJson($ctx.args.field2)
}
}
Run Code Online (Sandbox Code Playgroud)
以及以下响应映射模板:
#if($util.isNull($ctx.result))
#set($exists = false)
#else
#set($exists = true)
#end
$util.toJson({
"field1": $ctx.args.field1,
"field2": $ctx.args.field2,
"exists": $exists
})
Run Code Online (Sandbox Code Playgroud)
如果记录存在,则这可以正常工作,但如果不存在,则 AppSync 只会为整个 API 调用返回“null”,并且似乎根本不会评估响应映射模板。有什么办法可以指示它不要这样做吗?
另一种选择是执行查询并查看响应的长度,但我不知道如何检查这些模板中的长度。
这是2017请求模板版本的预期行为。如果您想$ctx.result评估,请切换到以下2018版本:
{
"version": "2018-05-29",
"operation": "GetItem",
"key": {
"id": $util.dynamodb.toDynamoDBJson($ctx.args.id),
},
}
Run Code Online (Sandbox Code Playgroud)
有关其他详细信息,请参阅此更改日志。
| 归档时间: |
|
| 查看次数: |
1374 次 |
| 最近记录: |