graphql - 访问解析器映射模板中的请求字段

标签 graphql aws-appsync

例如,当我们请求一个 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与 AppSync。

最佳答案

不幸的是,这实际上并不是 AppSync 今天所支持的。然而,这是我们从其他客户那里听到的一个请求,我将使用这篇文章作为 +1 来确定 future 版本的优先级。

关于graphql - 访问解析器映射模板中的请求字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56900332/

相关文章:

react-native - React Native、GraphQL、Apollo - 如何创建批量插入突变

graphql - 在 GraphQL Schema 中使用数字作为键?

Apollo Server 2 中没有 CDN 的 GraphQL Playground

typescript - aws cdk appsync 架构创建状态失败,详细信息为 : Internal Failure while saving the schema

aws-lambda - AWS Appsync从Lambda调用变异吗?

amazon-web-services - 触发更多突变的 AppSync 突变

java - ExceptionStrategy 构造方法上的异常 java.lang.NoSuchMethodError

graphql - Typegraphql+TypeORM : save/update an array of entities

GraphQL、Apollo、Relay……它们是如何组合在一起的?