OpenApi(Swagger)枚举显示名称



我们使用微文件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) {

最新更新