graphql解析器优化

graphql解析器优化,graphql,graphql-js,apollo-server,Graphql,Graphql Js,Apollo Server,如果我有模式: type Query { posts: [Post!]! } type Post { title: String! lotsofdata: String } 和一个解析器: function posts(parent, args, context, info) { return readAllPosts(/*?*/) } 和两个可能的查询。问题1: query { posts{ title } } 和问题2: query {

如果我有模式:

type Query {
  posts: [Post!]!
}
type Post {
  title: String!
  lotsofdata: String
}
和一个解析器:

function posts(parent, args, context, info) {
  return readAllPosts(/*?*/)
}
和两个可能的查询。问题1:

query {
  posts{
    title        
  }
}
和问题2:

query {
  posts{
    title 
    lotsofdata
  }
}
是否可以优化解析器,以便查询1 readAllPosts仅从数据库中提取标题,而查询2则同时提取标题和lotsofdata


我已经查看了parent、args、context和info参数,但看不到任何指示冲突解决程序是否被调用以响应类似于1或2的查询的信息。

不确定它是否仍然与您相关,但这应该是可能的,您可以查看名为的库。它将解析解析解析程序函数中的info参数。通过这种方式,您可以在解析器中获得有关已执行字段的信息。另一部分是使用这些信息来构建适当的SQL语句或投影,或者任何依赖于您使用的db的东西。我希望这会有帮助。
Best David

刚刚发现了这一点,这似乎是相关的,但已经有几年了。如果您能给我一些关于使用最新graphql工具进行此操作的建议,我将不胜感激。这是完全正确的。您需要将Object.keys从已解析数据的graphql字段中删除。