我在应用程序中有以下枚举。
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中有什么方法吗?
提前感谢
发布于 2020-02-27 08:17:58
返回它的名称,但我想返回它的赋值
这是设计好的。从spec
枚举不是对数值的引用,而是其自身的唯一值。它们可以序列化为一个字符串:表示的值的名称。
枚举值被序列化为它们的名称。您可以提供一个可以在执行期间在内部使用的附加值,但该值将不会在响应中使用。
发布于 2020-09-12 01:39:37
您可以通过提供自定义映射将GraphQL枚举映射到Java。
但是GraphQL不允许枚举值包含空格。因此,您可以使用不带空格的枚举,也可以将state字段声明为字符串。
或者,您可以提供这些字符串作为枚举值的描述。
GraphQLEnumType.newEnum()
.name("State")
.value("Started", State.Started, "newly started")
// ...
.build();或通过SDL:
enum State {
"newly started"
Started
}可以使用以下命令查询这些描述:
query {
__type(name: "State") {
enumValues {
name
description
}
}
}https://stackoverflow.com/questions/60424013
复制相似问题