我们使用微文件openapi注释为我们的rest接口生成Swagger文档。枚举通常具有一个属性,该属性存储";显示名称";,其被示出而不是Enum。
例如:
@AllArgsConstructor
@Getter
@JsonbTypeAdapter(MyEnumAdapter.class)
@Schema(implementation = MyEnum.class)
public enum MyEnum{
V1("displayname v1"),
V2("displayname v2"),
V3("displayname v3");
private final String name;
@Nullable
public static MyEnumfromString(String name) {
return Arrays.stream(values()).filter(u -> u.getName().equalsIgnoreCase(name)).findFirst().orElse(null);
}
}
Swagger显示如下枚举:
MyEnum string
Enum:
[ V1, V2, V3 ]
我想要什么:
MyEnum string
Enum:
[ "displayname V1", "displayname V2", "displayname V3" ]
API返回";显示名称";,然而Swagger展示了;枚举名称";这常常导致混乱。是否有可能更改Swagger值?
你能给我们提供你在服务上使用的注释和swagger.json上的结果吗?
您必须在@ApiParam注释上手动输入allowableValues属性。
public Object ...(@QueryParam(...)
@ApiParam(name = ..., value = "...",
allowableValues = "displayname v1, displayname v2, displayname v3")
MyEnum myEnum) {