【问题标题】:Is there an option to query enum description instead of value是否有查询枚举描述而不是值的选项
【发布时间】:2019-12-18 02:52:14
【问题描述】:

我从 graphql 架构中查询某些类型,对于特定字段,我想使用枚举描述而不是枚举值来获取它。

type Gigi {
   a: SomeEnum!
   b: Int!
}

enum SomeEnum {
   "Bla"
   BLA

   "Foo"
   FOO
}

我想获取带有枚举描述的“Gigi.a”字段。 例如:

{
   a: "Bla"
   b: 5
}

有人知道这是否可行吗?

【问题讨论】:

    标签: graphql apollo-server vue-apollo


    【解决方案1】:

    类型、字段和枚举值的描述​​仅用于文档目的,因此只能通过自省查询访问:

    query {
      __type(name: "SomeEnum") {
        enumValues {
          name
          description
        }
      }
    }
    

    另请注意,规范中没有任何内容要求枚举值全部大写,因此您可以使用如下枚举:

    enum SomeEnum {
      Bla
      Foo
    }
    

    【讨论】:

    • 感谢您的回答!我使用客户端的描述。我会找到另一种方法来做到这一点:)
    • @YairCohen 您始终可以在初始化客户端时运行自省查询,然后在客户端应用转换。根据您的用例,您还可以考虑将枚举包装在一个包含枚举值和描述的类型中。或者只返回一个字符串而不是字段的枚举,并在字段的解析器中应用转换。
    • 我想我会选择只用它们的值在服务器端设置枚举,并在客户端设置包括值和描述的枚举,并进行双向客户端上的转换。再次感谢你的帮助! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-12
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多