我有以下模型
type Duck {
category: Baz
}
type Foo {
size: FooSize
}
type Bar {
size: BarSize
}
union Baz = Foo | Bar
以下查询引发错误类型 FieldsConflict 的验证错误:大小:它们返回不同类型的 FooSize 和 BarSize @'duck/category'
(这是此处所述的预期行为:https://github.com/graphql/graphql-js/issues/53)
{
duck {
category {
... on Foo {
size
}
... on Bar {
size
}
}
}
}
size
上的别名会使查询工作,但我不能在这里使用它们,因为查询结果将被传递回另一个期望 Duck.category
有一个完全命名为 size
的键。
我可以在这里使用任何变通方法或模式重构来使它正常工作吗?
最佳答案
在高层次上,您只能做三件事来解决该错误:
- 重构架构,使
size
字段对于两种类型都是相同的类型。 - 为一个或两个字段命名。
- 只请求其中一种类型的字段。
如果您需要将响应传递给另一个 API,最简单的方法是使用别名,然后在将响应发送到 API 之前转换响应客户端。
关于graphql - 如何在联合中查询不同类型的相同字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58379796/