【发布时间】:2019-11-15 22:15:01
【问题描述】:
例如,当我们请求 GraphQL 查询时,
query GetPost {
singlePost(id: 123) {
id
title
}
}
我们已经在 AWS AppSync 中配置了一个 Lambda 解析器,即请求映射模板,
{
"version": "2017-02-28",
"operation": "Invoke",
"payload": {
"resolve": "singlePost",
"query": $utils.toJson($context.arguments)
}
}
允许我们定义传递给 lambda 处理程序的事件对象。
对于上面的示例,我们的 Lambda 处理程序将通过事件 event 调用,其中 event.payload.query.id == 123 等。
根据the docs$context对象包括,
{
"arguments" : { ... },
"source" : { ... },
"result" : { ... },
"identity" : { ... },
"request" : { ... }
}
也就是说,文档没有提到我可以在哪里访问 GraphQL 查询的请求字段。
对于前一个示例,这些字段将对应于["id", "title"]。
如果我需要解析一些嵌套属性,例如一个标签数组,一个对象通过昂贵的操作,例如一个 SQL 连接,如果我可以检查这个嵌套属性是否真的被请求,那将是有益的。
这个问题与 How to get requested fields inside GraphQL resolver? 相关,但是,它不同于 GraphQL 实现 graphql-tools vs AppSync。
【问题讨论】:
标签: graphql aws-appsync