如何在GraphQL中返回具有联合查询结果的对象类型?
我正在构建一个GraphQLAPI。返回联合/接口类型字段时,是否可以让服务器告诉我对象类型?i、 像这样的如何在GraphQL中返回具有联合查询结果的对象类型?,graphql,graphql-ruby,Graphql,Graphql Ruby,我正在构建一个GraphQLAPI。返回联合/接口类型字段时,是否可以让服务器告诉我对象类型?i、 像这样的 { search(text: "an") { ... on Human { __type name height } ... on Droid { __type name primaryFunction } ... on Starship { name
{
search(text: "an") {
... on Human {
__type
name
height
}
... on Droid {
__type
name
primaryFunction
}
... on Starship {
name
length
}
}
}
// or even better
{
search(text: "an") {
__type // <--- even though it's a Union query, everything has a type right? :/
... on Human {
name
height
}
... on Droid {
name
primaryFunction
}
... on Starship {
name
length
}
}
}
显然,我可以根据需要通过向对象添加“类型”字段来手动添加此功能,但我想GraphQL中已经内置了类似的内容?因为所有对象都已具有名称。基本上,我正在尝试作为普通查询的一部分访问内省信息。这可以使用特殊的元字段
\uu typename
,该字段可用于所有Graphql对象,并返回对象的Graphql类型名称。有关更多信息,请参阅
PS:看起来\uuu typename
是唯一一个可以在内省查询之外调用的元字段
用法如下:
{
search(text: "an") {
__typename
... on Human {
name
}
... on Droid {
name
}
... on Starship {
name
}
}
}
这可以使用特殊的元字段
\uuu typename
,该字段可用于所有Graphql对象,并返回对象的Graphql类型名称。有关更多信息,请参阅
PS:看起来\uuu typename
是唯一一个可以在内省查询之外调用的元字段
用法如下:
{
search(text: "an") {
__typename
... on Human {
name
}
... on Droid {
name
}
... on Starship {
name
}
}
}