相关疑难解决方法(0)

如何在GraphQL解析器中获取请求的字段?

我正在使用graphql-tools。收到GraphQL查询后,我使用ElasticSearch执行搜索并返回数据。

但是,通常所请求的查询仅包括一些可能的字段,而不是全部。我只想将请求的字段传递给ElasticSearch。首先,我需要获取请求的字段。

我已经可以将整个查询作为字符串获取。例如,在解析器中,

const resolvers = {
  Query: {
    async user(p, args, context) {
      //can print  query as following
      console.log(context.query)                
    }
    .....
  }
}
Run Code Online (Sandbox Code Playgroud)

它打印为

query User { user(id:"111") { id  name address } }
Run Code Online (Sandbox Code Playgroud)

有没有办法以以下格式获取请求的字段

{ id:"",  name:"", address:"" }
Run Code Online (Sandbox Code Playgroud)

graphql graphql-js

7
推荐指数
2
解决办法
4416
查看次数

如何知道 GraphQL 查询中请求了哪些字段?

我编写了一个 GraphQL 查询,如下所示:

{
  posts {
    author {
      comments
    }
    comments
  }
}
Run Code Online (Sandbox Code Playgroud)

我想知道如何获取有关posts解析器中请求的子字段的详细信息。

我想这样做是为了避免解析器的嵌套调用。我正在使用 ApolloServer 的DataSourceAPI。

我可以更改 API 服务器以一次获取所有数据。

我正在使用 ApolloServer 2.0,也欢迎任何其他避免嵌套调用的方法。

resolver apollo graphql apollo-server

7
推荐指数
1
解决办法
3011
查看次数

标签 统计

graphql ×2

apollo ×1

apollo-server ×1

graphql-js ×1

resolver ×1