首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GraphQL-java中为GraphQL枚举返回不同的值

在GraphQL-java中为GraphQL枚举返回不同的值
EN

Stack Overflow用户
提问于 2020-02-27 07:14:28
回答 2查看 2K关注 0票数 2

我在应用程序中有以下枚举。

代码语言:javascript
复制
public enum State {
    Started("newly started"),
    Hold("hold on"),
    Running("still running"),
    Stop("just stopped");

    private String value;

    State(String value) {
        this.value = value;
    }

    public String getValue() {
        return value;
    }
}

我也有同样的GraphQL模式。我使用的是GraphQL-java库,而不是GraphQL-spqr或GraphQL-java-tools。当我返回这个枚举时,它的名称被返回,但我想返回它的赋值,例如,“仍在运行”表示正在运行枚举,"just Stop“表示停止枚举等等。在GraphQL-java中有什么方法吗?

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2020-02-27 08:17:58

返回它的名称,但我想返回它的赋值

这是设计好的。从spec

枚举不是对数值的引用,而是其自身的唯一值。它们可以序列化为一个字符串:表示的值的名称。

枚举值被序列化为它们的名称。您可以提供一个可以在执行期间在内部使用的附加值,但该值将不会在响应中使用。

票数 0
EN

Stack Overflow用户

发布于 2020-09-12 01:39:37

您可以通过提供自定义映射将GraphQL枚举映射到Java。

但是GraphQL不允许枚举值包含空格。因此,您可以使用不带空格的枚举,也可以将state字段声明为字符串。

或者,您可以提供这些字符串作为枚举值的描述。

代码语言:javascript
复制
GraphQLEnumType.newEnum()
    .name("State")
    .value("Started", State.Started, "newly started")
    // ...
    .build();

或通过SDL:

代码语言:javascript
复制
enum State {
    "newly started"
    Started
}

可以使用以下命令查询这些描述:

代码语言:javascript
复制
query {
  __type(name: "State") {
    enumValues {
      name
      description
    }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60424013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档