AppSync Dynamodb 解析器
AppSync Dynamodb Resolvers
我正在尝试学习如何使用 AppSync 及其 DynamoDB 集成。
我已成功创建 AppSync GraphQL API 并将解析器链接到主键上的 getter,我认为我了解发生了什么。但是,我根本无法让 putItem 解析器工作,并且正在努力寻找调试逻辑的有用方法。
这里有一个将部署应用程序的 cdk 存储库。第 133-145 行有一个手写模式,我认为它应该可以工作但是收到错误
One or more parameter values were invalid: Type mismatch for key food_name expected: S actual: NULL (Service: DynamoDb, Status Code: 400
我也曾尝试将表达式括在引号中,但收到错误。
我应该从这里去哪里?
示例数据创建一个 table 键
- food_name
- scientific_name
- 组
- sub_group
以food_name为主键。
https://github.com/AG-Labs/AppSyncTask
今天我尝试将列表解析器重新实现为
{
"version" : "2017-02-28",
"operation" : "Scan",
## Add 'limit' and 'nextToken' arguments to this field in your schema to implement pagination. **
"limit": $util.defaultIfNull(${ctx.args.limit}, 20),
"nextToken": $util.toJson($util.defaultIfNullOrBlank($ctx.args.nextToken, null))
}
响应映射为
$util.toJson($ctx.result.items)
在 cloud watch 中,我可以看到日志类型 ResponseMapping 下的结果列表(虽然没有正确过滤,但我现在会忽略它)但这些不会返回给查询器。结果简直
{
"data": {
"listGenericFoods": {
"items": null
}
}
}
我不明白这是哪里出了问题。
问题是解析器是嵌套的。
编写手写模式解决了问题,但结果更差 API。后退几步,将从头开始慢慢添加更多解析器。
CloudWatch Logs 开启后有所帮助,但仍需要对解析器进行大量更改,然后重试。
我正在尝试学习如何使用 AppSync 及其 DynamoDB 集成。
我已成功创建 AppSync GraphQL API 并将解析器链接到主键上的 getter,我认为我了解发生了什么。但是,我根本无法让 putItem 解析器工作,并且正在努力寻找调试逻辑的有用方法。
这里有一个将部署应用程序的 cdk 存储库。第 133-145 行有一个手写模式,我认为它应该可以工作但是收到错误
One or more parameter values were invalid: Type mismatch for key food_name expected: S actual: NULL (Service: DynamoDb, Status Code: 400
我也曾尝试将表达式括在引号中,但收到错误。 我应该从这里去哪里?
示例数据创建一个 table 键
- food_name
- scientific_name
- 组
- sub_group
以food_name为主键。
https://github.com/AG-Labs/AppSyncTask
今天我尝试将列表解析器重新实现为
{
"version" : "2017-02-28",
"operation" : "Scan",
## Add 'limit' and 'nextToken' arguments to this field in your schema to implement pagination. **
"limit": $util.defaultIfNull(${ctx.args.limit}, 20),
"nextToken": $util.toJson($util.defaultIfNullOrBlank($ctx.args.nextToken, null))
}
响应映射为
$util.toJson($ctx.result.items)
在 cloud watch 中,我可以看到日志类型 ResponseMapping 下的结果列表(虽然没有正确过滤,但我现在会忽略它)但这些不会返回给查询器。结果简直
{
"data": {
"listGenericFoods": {
"items": null
}
}
}
我不明白这是哪里出了问题。
问题是解析器是嵌套的。
编写手写模式解决了问题,但结果更差 API。后退几步,将从头开始慢慢添加更多解析器。
CloudWatch Logs 开启后有所帮助,但仍需要对解析器进行大量更改,然后重试。