如何在 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。
我需要在 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。