当前位置: 首页 > 知识库问答 >
问题:

Swagger/OpenAPI向每个枚举值添加@schema(description)

马胜泫
2023-03-14

我正在使用Swagger/OpenAPI V3注释创建应用程序的API描述,这些注释从以下依赖项导入:

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-ui</artifactId>
    <version>1.5.0</version>
</dependency>
public enum Gender {

    @Schema(description = "NotSpecified")
    NOT_SPECIFIED,

    @Schema(description = "Male")
    MALE,

    @Schema(description = "Female")
    FEMALE;
}
Gender:
  type: string
  example: MALE
  enum:
  - NOT_SPECIFIED
  - MALE
  - FEMALE

共有1个答案

羊舌自强
2023-03-14

我相信您只能在enum的Descipion(https://swagger.io/docs/specification/data-models/enums/)中描述enum值。所以你可以这样做:

@Schema(enumAsRef = true, description = "gender: \n" +
        "* `NOT_SPECIFIED` - NotSpecified\n" +
        "* `MALE` - Male\n" +
        "* `FEMALE` - Female\n" +
        "")
enum Gender {
    NOT_SPECIFIED,
    MALE,
    FEMALE
}

生成的霸气看起来相当不错。

 类似资料:
  • 例如: Swagger这样显示枚举: 我想要的是: API返回“显示名称”,然而,Swagger显示“枚举名称”,这经常导致混淆。有可能改变狂妄的价值观吗?

  • 我正在从带注释的java代码生成OpenAPI 3.0文档。但问题是,当我将@Schema注释添加到enum时,所有值都会消失。我正在使用Thorntail 2.3.0。最终使用microprofile openapi分数。 我知道我可以改变。yaml文件,但我需要直接从Java代码生成yaml。 这是我在github上的最小示例:https://github.com/pkristja/openA

  • 我正在使用从以下依赖项导入的Swagger/OpenAPIV3注释创建应用程序的API描述: 其中一个批注是批注,它接受名为的属性,该属性允许字符串数组: 现在,我想使用在枚举类上构造的自定义方法,该方法返回允许的字符串数组,因此不需要在每次向枚举添加类型时添加该方法。以便我们可以这样使用它: 现在这是无法编译的,因为在执行注释时不知道该方法。是否有这样的解决方案允许在SwaggerV3注释属性值

  • 我们的服务定义如下: 借助openapi-generator-maven-plugin,我们生成了Spring Boot服务: 现在,当我们试图从swagger-ui(http://localhost:8080/swagger-ui)调用服务时,它将失败: openapi-generator-maven-plugin版本4.2.3和4.3.1. springfox-swagger-ui 2.9.2

  • 问题内容: 是否可以在Java中定义类似的内容? C#代码: 例如,如果设置为then,结果将为: 我想实现类似的东西!Java有可能吗? 问题答案: 好吧,您 几乎 可以做到: 然后: 在某些情况下,这可能很有用,但是正如Michael所说,您绝对应该考虑一般的“值集”选项。 如果 确实 决定使用带值的枚举,则可以在枚举本身内放入额外的逻辑: