GraphQL:每种类型的子字段与可以使用 args 过滤的根查询字段?

Posted

技术标签:

【中文标题】GraphQL:每种类型的子字段与可以使用 args 过滤的根查询字段?【英文标题】:GraphQL: sub-field per type vs root query field which can be filtered using args? 【发布时间】:2016-11-07 16:22:24 【问题描述】:

我正在开发一个投票应用程序,我有用户、投票和投票(用户和投票之间的中间人)。关于在我的架构中访问投票,我在决定在 GraphQL 中做什么是正确的事情时遇到了麻烦。

我是否应该在我的根查询中有一个 votes 字段,其中包含可以通过 args 过滤的所有投票、特定用户的投票或特定投票?

我的根查询下是否应该有一个 votes 字段 - 解析所有投票,每个 user 下的另一个字段 - 解析所有用户的投票,每个 poll 下的另一个字段解析投票给所有投票?

都好吗?

我不是在问哪种方法有效,而是哪种方法是正确的,谢谢。

【问题讨论】:

【参考方案1】:

后者是更清洁的方法。将每个用户的投票作为用户类型上的连接进行查询会更有意义,投票也是如此。要获得单个投票,您的 getVote 查询应该接受一个唯一的投票 ID 作为查询的参数,如果您想检索全部,我建议为接受标准参数(如限制、光标、 orderBy、first 或 last。

希望这会有所帮助!

【讨论】:

谢谢你,这也是我现在正在采取的方法,但它让我在中继突变上变得困难,你能帮我吗?你也熟悉继电器吗? 没问题!是的,有什么可以帮助您的吗? 这是关于为这个(有些复杂的)模式结构定义一个胖查询,我实际上在这里问过它:***.com/q/38192260/3137842。谢谢!

以上是关于GraphQL:每种类型的子字段与可以使用 args 过滤的根查询字段?的主要内容,如果未能解决你的问题,请参考以下文章

给定一组 GraphQL 变量类型,是不是可以使用客户端模式为集合中的每种类型创建所有有效值的映射

介绍 GraphQL

Apollo GraphQL:用于查询返回不同类型对象的模式?

graphql 突变不返回嵌套字段

类型 GraphQL 如何避免创建未输入的字段

带有graphql-yoga的子字段上的Graphql错误