java在spring boot中使用openapi为枚举参数使用@Schema(allowableValues=)
我的API在请求正文中有一个枚举字段。当我生成swagger UI时,它会以允许的值作为枚举名显示枚举。我需要将它设置为枚举值,而不是枚举名称。为此,我使用了@Schema(allowableValues=)。这将在swagger UI中生成一个包含值和名称的列表。我是否可以仅在swagger中将其设置为值
我的枚举示例:
public enum Days{
MON("Monday"),
SUN("Sunday")
}
当前的招摇过市字段如下所示:
day string Enum: [ MON, SUN ]
我希望它有:
day string Enum: [ Monday, Sunday]
当我将@Schema(allowableValues={“周一”、“周日”)添加到enum字段时,Swagger变成:
day string Enum: [ MON, SUN, Monday, Sunday]
任何解决方案都值得赞赏
# 1 楼答案
如果您使用的是Jackson,那么swagger添加了对使用v2中包含的注释@JsonProperty/@JsonValue中定义的值的支持。1.3 https://github.com/swagger-api/swagger-core/releases/tag/v2.1.3
这样你就可以写了
# 2 楼答案
使用
# 3 楼答案
可以通过覆盖enum的toString来实现。不需要使用@Schema