查询中对象的 GraphQL 参数
Posted
技术标签:
【中文标题】查询中对象的 GraphQL 参数【英文标题】:GraphQL arguments on Object in query 【发布时间】:2017-11-14 09:55:26 【问题描述】:我想执行这样的查询:
houses(owner: "Thomas")
id
color
cars(type: "Sports Car")
name
year
但这会返回错误:
"message": "Unknown argument \"type\" on field \"cars\" of type \"House\".",
但是,我能够正确执行此操作:
cars(type: "Sports Car")
name
year
我正在尝试做的事情是否可能?
提前致谢!
【问题讨论】:
这是可能的。请问您可以发布您的类型吗? 这取决于你如何设置你的schema 【参考方案1】:确保您将 cars 的解析器设置为 houses 的子查询。 houses 查询的结果应作为 root 参数传递给 cars 子查询。
type House
id
color
cars( type: String! ): [ Car ]
type Car
name
year
您的解析器可能如下所示:
Query:
async houses( root, args, context )
return ... houses ...
,
houses:
async cars( root, args, context )
return ... cars ...
然后为 cars 创建一个解析器,该解析器嵌套在 houses 查询下方。如果您使用 Apollo 的 graphql-tools,这里有一篇文章:Writing resolvers with graphql-tools
希望这会有所帮助!
【讨论】:
以上是关于查询中对象的 GraphQL 参数的主要内容,如果未能解决你的问题,请参考以下文章