GraphQL 枚举联合解决方法?

J.S*_*S.C 15 enums graphql

我有属于主要类别的主要类别和次要类别。两者都是 ENUM 类型。我希望客户选择匹配的次要类别 ENUM 与其主要类别一起提交。我不想将所有不同的次要类别 ENUM 作为字段包含在内。

我第一次尝试做 union MinorCategories = Minor1 | Minor2 但是这失败了,因为union只适用于ObjectTypes

没有必要根据主要类别强制执行次要类别。我只想通过 ENUM 接收一个可由客户端选择的字段。有什么解决办法吗?

小智 10

GraphQL 不支持标量值的联合类型,仅支持对象类型。一种选择(尽管很难看)是将枚举包装在对象类型中。

type Minor1Wrapper {
  value: Minor1!
}

type Minor2Wrapper {
  value: Minor2!
}

union MinorCategories = Minor1Wrapper | Minor2Wrapper
Run Code Online (Sandbox Code Playgroud)