首页 文章

graphql解析器优化

提问于
浏览
0

如果我有架构:

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只从数据库中提取 Headers ,但对于查询#2,它会拉回 Headers 和lotsofdata?

我查看了parent,args,context和info参数,但是看不到任何东西来指示是否正在调用解析器来响应#1之类的查询或类似#2 .

1 回答

  • 1

    不确定它是否仍然适合你,但它应该是可能的,你可以看看名为https://github.com/robrichard/graphql-fields#readme的库 . 它将解析您的解析器函数中的info参数 . 这样,您可以将有关已执行字段的信息获取到解析程序中 . 另一部分是使用此信息来构建正确的SQL语句或投影或其他(取决于您使用的数据库) . 我希望,这有帮助 . 最好的大卫

相关问题