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

如何使用代码优先的方法实现OpenApi/Swagger考虑Java验证注释?

池兴邦
2023-03-14

我看了很多,但找不到任何解决我的问题的方法:固定使用代码优先的方法,我想知道如何实现OpenApi(Swagger)将考虑验证注释,如@Min()、@Max()、@size()、...在我的Java/Spring Boot应用程序中。每当我让生成到OpenApi留档时,这些注释就不会被考虑;它们根本不显示。

目前我尝试使用

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

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

豆子(尝试@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")));

共有1个答案

戚修雅
2023-03-14

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

 类似资料:
  • 本文向大家介绍java实用验证码的实现代码,包括了java实用验证码的实现代码的使用技巧和注意事项,需要的朋友参考一下 本文为大家分享了java实用验证码的实现代码,供大家参考,具体内容如下 1、ValidCode      2.XML代码 以上就是本文的全部内容,希望对大家的学习有所帮助。

  • 我正在使用for。对于这个我正在使用,https://github.com/vyuldashev/laravel-queue-rabbitmq. 对于正常队列和消费者,一切都很好。为了区分消息的优先级,我定义了多个队列,在队列名中使用0-3作为后缀。我通过手动计算作业总数,将作业路由到不同的队列。 使用这种方法,对于不同的任务,我需要创建更多具有名称优先级的队列。创建队列名称中包含 0-3 的队列

  • 本文向大家介绍Java如何实现验证码验证功能,包括了Java如何实现验证码验证功能的使用技巧和注意事项,需要的朋友参考一下 Java如何实现验证码验证功能呢?日常生活中,验证码随处可见,他可以在一定程度上保护账号安全,那么他是怎么实现的呢? Java实现验证码验证功能其实非常简单:用到了一个Graphics类在画板上绘制字母,随机选取一定数量的字母随机生成,然后在画板上随机生成几条干扰线。 首先,

  • 我现在是这样做的: > 我有一个在后台运行并读取用户位置的服务。每次读取一个有效的位置(有一些参数,如距离和时间),一个IntentService开始将该位置发送到网络服务器 使用追踪服务的应用程序也有一些网络通话,具体取决于用户按下的选项。现在,应用程序只是在异步任务中调用web服务。 一些代码:位置服务会在每次收到好位置时启动IntentService,如下所示: intentservice处

  • 本文向大家介绍java使用servlet实现验证码,包括了java使用servlet实现验证码的使用技巧和注意事项,需要的朋友参考一下 利用servlet 实现验证码主要继承httpServlet类 下面是web.xml 配置  jsp 文件 简单实用。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 我正在生成Restendpoint,包括向生成的代码添加Openapi/Swagger注释。 虽然它可以很好地处理基本类型,但我在自定义类方面有一些问题。 现在我有很多自定义类的重复模式条目(使用@Schema(实现=MyClass.class)),但至少需要的信息在那里。然而,我想找到一种方法来删除重复的模式条目,同时保留附加信息。 在一个讨论$ref和缺乏兄弟属性的github问题上,我发现了