【问题标题】:OpenApi (Swagger) Enum display nameOpenApi (Swagger) 枚举显示名称
【发布时间】:2021-04-07 06:31:14
【问题描述】:

我们使用 microprofile openapi 注释为我们的其余接口生成 Swagger 文档。 枚举通常具有存储“显示名称”的属性,而不是枚举。

例如:

@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 值?

【问题讨论】:

    标签: java enums swagger openapi microprofile


    【解决方案1】:

    您能否向我们提供您在 swagger.json 上的服务和结果中使用的注释?

    您必须在 @ApiParam 注释上手动输入 allowableValues 属性。

    public Object ...(@QueryParam(...)
                      @ApiParam(name = ..., value = "...", 
                                allowableValues = "displayname v1, displayname v2, displayname v3")
                      MyEnum myEnum) {
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-20
      • 2019-12-21
      • 2021-10-03
      • 1970-01-01
      • 2016-01-18
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      相关资源
      最近更新 更多