我在架构文件中定义了以下Union:
find_package
,例如设置
的此类型定义union ContentUnion = Content | Setting | Page | Picture
我还有 ContentUnion 的工作类型解析器。
使用此查询
type Setting {
id: String!
doctype: String!
name: String!
}
我能够检索一个值。但这对我来说很奇怪,因为我不明白为什么我必须明确告诉Type是 Setting 。我认为TypeResolver实际上是什么?
我想简单地使用此查询
{
content(id: "113804"){
... on Setting{
id
}
}
}
但结果是:
{
content(id: "113804"){
id
}
}
这是因为架构无法在 ContentUnion 联合类型上找到 id 字段,因为它是一个联合。我想知道是否有办法让这个工作呢?因为它会在我的实现中为我消除很多头痛。
答案 0 :(得分:0)
对不起,您必须使用带有类型片段的查询。
每unions in the GraphQL specification,GraphQL联合表示一个对象,该对象可以是GraphQL对象类型列表之一,但不提供这些类型之间的保证字段。 没有字段可以在不使用类型化片段的情况下查询。