如何在 OpenApi 3.0.1 中使用枚举属性

How to use enum properties in OpenApi 3.0.1

我有一个这样的枚举:

@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 列表的默认值。

正如我所怀疑的那样,OpenApi 使用枚举的 toString(),它默认实现为调用 name()。如果您覆盖枚举的 toString()。你会达到你的目标。

我看不出任何你不应该为 Java 枚举重新定义 toString() 的理由,我不知道这应该违反任何合同。