gpt4 book ai didi

java - GraphQL 有没有办法在没有显式 "...on"查询的情况下获取解析的联合类型字段?

转载 作者:太空宇宙 更新时间:2023-11-04 10:27:26 26 4
gpt4 key购买 nike

我在架构文件中定义了以下联合:

union ContentUnion = Content | Setting | Page | Picture

例如设置的类型定义

type Setting {
id: String!
doctype: String!
name: String!
}

我还有一个用于 ContentUnion 的有效类型解析器。

使用此查询

{ 
content(id: "113804"){
... on Setting{
id
}
}
}

我能够检索一个值。但这对我来说感觉很奇怪,因为我不明白为什么我必须明确告诉类型是设置。我认为这就是 TypeResolver 的实际用途?

我想简单地使用这个查询

  { 
content(id: "113804"){
id
}
}

但结果是:

{
"data": null,
"errors": [
{
"message": "Validation error of type FieldUndefined: Field 'id' in type 'ContentUnion' is undefined @ 'content/id'",
"locations": [
{
"line": 1,
"column": 26
}
],
"description": "Field 'id' in type 'ContentUnion' is undefined",
"validationErrorType": "FieldUndefined",
"queryPath": [
"content",
"id"
],
"errorType": "ValidationError",
"path": null,
"extensions": null
}
],
"extensions": null,
"dataPresent": false
}

这是因为架构无法在 ContentUnion 联合类型上找到 id 字段,因为它是联合。我想知道是否有办法让它发挥作用?因为它会消除我在实现过程中的很多头痛。

最佳答案

很抱歉您必须使用带类型片段的查询。

unions in the GraphQL specification ,GraphQL 联合表示一个对象,可以是 GraphQL 对象类型列表之一,但不提供这些类型之间的保证字段。在不使用类型化片段的情况下,没有字段可以在联合上查询。

关于java - GraphQL 有没有办法在没有显式 "...on"查询的情况下获取解析的联合类型字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50386053/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com