我有以下型号
type Duck {
category: Baz
}
type Foo {
size: FooSize
}
type Bar {
size: BarSize
}
union Baz = Foo | Bar
以下查询引发错误Validation error of type FieldsConflict: size: they return differing types FooSize and BarSize @ 'duck/category'
(这是预期的行为,如此处所述:https://github.com/graphql/graphql-js/issues/53)
{
duck {
category {
... on Foo {
size
}
... on Bar {
size
}
}
}
}
size
上的别名可以使查询正常工作,但是我不能在这里使用它们,因为查询结果将被传递回另一个API,该API期望Duck.category
拥有一个恰好名为{ {1}}。
我可以在这里使用任何解决方法或架构重构来使它正常工作吗?
答案 0 :(得分:0)
从总体上讲,您只能做三件事来解决该错误:
size
字段对于这两种类型而言都是相同的类型。如果您需要将响应传递给另一个API,最简单的方法是使用别名,然后在将响应发送到API之前转换客户端的响应。