如何在 Java 中的 Swagger UI 中显示枚举的自定义值?

How to display custom value for enum in Swagger UI in Java?

我需要在 java 中的 swagger-ui 中显示枚举的自定义值。 我的 DTO 中有一个枚举(性别)。 swagger UI 根据需要显示下拉菜单,但显示文本和选项值也相同。

Swagger UI 输出如下:

 <select id="mgender0.6152790512895818" name="gender" class="parameter ">
      <option value="" selected=""></option>
      <option value="Female"> Female  </option>
      <option value="Male"> Male  </option>
  </select>

可以看到,该值还有"Female"和"Male"。那应该是 "M" 和 "F" 而不是全文。

这是我的 Java 枚举

public enum Gender {
    F("Female"), M("Male");

    private String displayValue;

    private Gender(String displayValue) {
        this.displayValue = displayValue;
    }

    @Override
    public String toString() {
        return displayValue;
    }

    public String getDisplayValue() {
        return displayValue;
    }

    public String getName() {
        return name();
    }
}

swagger 的预期输出是:

    <select id="mgender0.6152790512895818" name="gender" class="parameter ">
      <option value="" selected=""></option>
      <option value="F"> Female  </option>
      <option value="M"> Male  </option>
  </select>

请帮助我解决同样的问题。我已经尝试过 @APIModel 属性,但是我所做的肯定有问题,因为它没有帮助。

考虑实施您自己的 ParameterBuilderPlugin