Oli*_*alo 10 graphql graphql-js
我想定义以下查询
{
// return all individuals
individuals {
id
}
}
// return ONE individual by id
individuals(id:"123") {
id
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,查询名称相同,只有参数不同.
今天,我发现的唯一解决方法是定义不同的查询名称.
如何定义多态查询?它甚至可能吗?
stu*_*ilo 10
可以在GraphQL查询的根目录中访问的字段在GraphQL模式中定义为根查询类型上的字段,通常只是命名Query
.此类型与架构中的任何其他GraphQL对象类型完全相同.所以这个问题可以重申为:
GraphQL字段是否能够根据传入的参数或参数类型返回不同的结果?
最简洁的答案是不".GraphQL的一个重要特性是特定字段必须始终返回相同的类型; 这意味着返回数组的字段必须始终返回一个数组,并且返回对象类型的字段必须始终返回该特定类型,而不管传入的参数如何.
但是,有几种方法可以实现类似的结果,以避免需要创建太多不同的命名字段:
individuals
,您可以使用可选参数来提供不同类型的过滤器,例如:individuals(search: "Dan")
或individuals(status: "admin")
,或individuals
(没有参数)或individuals(status: "admin", search: "Dan")
(两个参数一次提供).但是,在许多情况下,您需要创建多个字段,因为GraphQL当前没有方法重载或多态.
归档时间: |
|
查看次数: |
5724 次 |
最近记录: |