amazon-web-services - AWS AppSync Lambda 解析器字段
问题描述
我有以下查询:
query xxx {
getSomething(id: "id") {
field1
field2
}
}
有什么方法可以让我进入field1
lambdafield2
吗?例如,仅查询 mysql 中的那些字段,而不是全部获取,以便稍后被 AppSync 丢弃。
我尝试$context
在请求映射器 VTL 文件中记录所有内容,但它们不存在。有任何想法吗?无法做到这一点似乎很愚蠢。我在 lambda 中得到的唯一东西就是id
参数。
谢谢,米海
解决方案
AppSync 现在支持获取GraphQL Info 对象。您可以从selectionSetList变量中获取请求列的列表。
Info 对象的布局:
{
"fieldName": "string",
"parentTypeName": "string",
"variables": { ... },
"selectionSetList": ["string"],
"selectionSetGraphQL": "string"
}
将 selectionSetList 属性传递给 lambda 解析器的示例:
{
"version" : "2017-02-28",
"operation": "Invoke",
"payload": {
"arguments": $utils.toJson($ctx.args),
"selectionSetList": $utils.toJson($ctx.info.selectionSetList),
"selectionSetGraphQL": $utils.toJson($ctx.info.selectionSetGraphQL)
}
}
注意:如果您尝试传递 selectionSetList,那么您需要专门引用它(如上面的示例中所示)。如果 info 对象直接使用$utils.toJson($ctx.info)
.
推荐阅读
- css - 从 Wordpress 中的特定页面删除侧边栏
- python - 本地服务器中的 GeocoderServiceError Geopy Nominatim
- haskell - GHC Haskell 中的空间泄漏是否总是可以修复的?
- php - PHP:通过检索 $_POST 数据未定义索引
- linux - 如何在子制作失败后保持 Makefile 执行但保留错误信息
- networking - 路由 cisco 1841 接口流量
- ios - 更新 Xcode 后的 EXC_BAD_ACCESS (SIGABRT)
- android - Xamarin android onActivityResult data.extras 返回 null
- python - 如何在生产中更新 Python 应用程序
- ios - 是否可以用长音重复 iOS 通知?(如 Apple 闹钟应用程序。)