【发布时间】:2021-10-11 12:05:00
【问题描述】:
我有一个这样的枚举:
@Getter
public enum ErrorCode implements BaseError {
// @formatter:off
FOO(100001, "Foo message.",
BAR(100002, "Bar message."),
.
.
.
FOOBAR(300003, "FOOBAR message.");
public final int errorId;
public final String errorMsg;
ErrorCode(int errorId, String errorMsg) {
this.errorId = errorId;
this.errorMsg = errorMsg;
}
}
我知道,我可以使用@Schema(implementation = ErrorCode.class) 在 SqggerUI 中显示枚举,但它会显示名称。有没有办法显示错误代码(或枚举的任何其他已定义属性)?
在这种情况下,我想显示 errorCodes 列表,而不是显示枚举列表 names 的默认值。
【问题讨论】:
-
我不确定库是使用
name()还是toString()来生成Open API 规范。您是否尝试过覆盖toString()方法? -
谢谢你,本田。这是解决问题的一种可能方法。 :-)
-
你测试了吗?如果我将其发布为答案,您会接受吗?我真的很好奇图书馆是否使用
name()或toString()。顺便说一句,我的名字是 Honza 而不是本田 - en.wikipedia.org/wiki/Honza :) -
抱歉错字,Honza(这是自动更正)。好吧,它可以工作,但更好的方法是告诉注释使用另一个枚举的属性。 Enum.toString() 默认在内部使用 name() 并且 OpenApi Schema 注解似乎也使用了枚举的 toString() 方法。 ...但是,这可能会对应用程序代码的其他部分产生影响。
标签: java openapi enumeration