【问题标题】:How to achieve that OpenApi / Swagger considers Java validation annotions using code-first approach?如何使用代码优先方法实现 OpenApi / Swagger 考虑 Java 验证注释?
【发布时间】:2021-08-01 06:54:28
【问题描述】:

我看了很多,但找不到任何解决我的问题的方法:已修复 code-first 方法将被使用,我想知道如何实现它 OpenApi (Swagger) 将在我的 Java / Spring Boot 应用程序中考虑像 @Min(), @Max(), @Size(), ... 这样的验证注释。每当我让生成到 OpenApi 文档时,这些注释都不会被考虑;它们根本不显示。

目前我尝试使用

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-ui</artifactId>
    <version>1.5.10</version>
</dependency>

我也尝试使用 common 依赖项,但没有帮助。

bean(尝试了@Min() 和@Max,除了@size()):

@Data
@SuperBuilder(setterPrefix = "with")
public class ResponseBody {
    @NotNull
    @Min(value = 3)
    @Max(44)
    @Size(min = 3, max = 44)
    private String referenceMessageId;
}

OpenApi bean:

@Bean
default OpenAPI customOpenApi() {
    return new OpenAPI()
        .info(new Info()
        .title("XXX")
        .version("1.0")
        .description("xxx"))
        .components(new Components()
            .addSchemas(ERROR_RESPONSE_SCHEMA_KEY, new io.swagger.v3.oas.models.media.Schema<>().type("object").$ref("#/components/schemas/ErrorResponseBody"))
            .addSchemas(VNB_RESPONSE_SCHEMA_KEY, new io.swagger.v3.oas.models.media.Schema<>().type("object").$ref("#/components/schemas/ResponseBody"))
            .addParameters(API_VERSION_HEADER_PARAMETER, new io.swagger.v3.oas.models.parameters.Parameter()
                .name(API_VERSION_HEADER_PARAMETER)
                .required(Boolean.TRUE)
                .allowEmptyValue(Boolean.FALSE)
                .description("yyy")
                .in("header")
                .schema(new io.swagger.v3.oas.models.media.Schema<String>()
                .type("string")
                .example("1.0.0")));

【问题讨论】:

    标签: spring-boot validation swagger openapi


    【解决方案1】:

    我发现在文档生成过程中不考虑 @Min@Max@Size(min = x, max = y) 是。我认为如果 Openapi 实现能够考虑整个 Spring 验证注释范围,那将是有益的。

    【讨论】:

      猜你喜欢
      • 2020-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多