GraphQL 枚举联合解决方法?

Posted

技术标签:

【中文标题】GraphQL 枚举联合解决方法?【英文标题】:GraphQL enum union workaround? 【发布时间】:2020-01-08 23:30:32 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

GraphQL does not support union types for scalar values, only for object types。 一种选择,尽管很丑陋,是将您的枚举包装在一个对象类型中。

type Minor1Wrapper 
  value: Minor1!


type Minor2Wrapper 
  value: Minor2!


union MinorCategories = Minor1Wrapper | Minor2Wrapper

【讨论】:

以上是关于GraphQL 枚举联合解决方法?的主要内容,如果未能解决你的问题,请参考以下文章

Elixir Absinthe GraphQL,联合 resolve_type list_of/1

无法在 GraphQL 中实现联合

使用 apolloclient 在 android 中 Graphql 查询导致“标量的意外枚举”

Graphql没有为接口/联合定义解析器 - java

typescript 和 graphql-codegen 之间的枚举不匹配

如何解决错误 405 方法不允许,用于 django graphql 服务器并在前端反应 axios