【问题标题】:Swagger (@Schema(required = true)) override the javax.validation messageSwagger (@Schema(required = true)) 覆盖 javax.validation 消息
【发布时间】:2023-01-30 21:04:56
【问题描述】:

我们已经将 swagger 引入到我们现有的 spring rest 应用程序中。我们已经有了 javax.validation 的 @NotNull 来验证有效负载,它工作正常。

在我们引入 Swagger 3 之后,我们使用了 @Schema(required = true) 和 @NotNull。现在 Swagger 覆盖了 javax.validation 的错误消息。

招摇之前:由javax.validation生成的“XXX must not be null”。

大摇大摆之后:缺少必需的创建者属性“XXX”。

是否可以禁用 swagger 验证?

提前致谢

【问题讨论】:

    标签: swagger openapi javax.validation swagger-3.0


    【解决方案1】:

    是的,可以在 Spring REST 应用程序中禁用 Swagger 验证。您可以通过在应用程序配置中配置 springfox.documentation.spring.web.plugins.Docket bean 来做到这一点。

    以下是如何禁用 Swagger 验证的示例:

    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {
    
      @Bean
      public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
            .select()
            .apis(RequestHandlerSelectors.any())
            .paths(PathSelectors.any())
            .build()
            .enable(false);
      }
    }
    
    

    在上面的示例中,.enable(false) 方法禁用 API 的 Swagger 验证。您还可以通过设置 .enable(true) 以启用验证或设置 .enable(null) 以继承默认行为来控制验证。

    【讨论】:

      猜你喜欢
      • 2016-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-31
      • 2016-09-13
      • 2020-04-16
      • 2019-07-18
      • 1970-01-01
      相关资源
      最近更新 更多