springboot中使用knife4j访问接口文档的一系列问题

简介: 本文介绍了在Spring Boot项目中使用Knife4j访问接口文档时遇到的一系列问题及其解决方案。作者首先介绍了自己是一名自学前端的大一学生,熟悉JavaScript和Vue,正在向全栈方向发展。接着详细说明了如何解决Swagger请求404错误,包括升级Knife4j依赖、替换Swagger 2注解为Swagger 3注解以及修改配置类中的代码。最后,针对报JS错误的问题,提供了删除消息转换器代码的解决方法。希望这些内容能对读者有所帮助。

springboot中使用knife4j访问接口文档的一系列问题

个人介绍

🎉🎉🎉欢迎来到我的博客,我是一名自学了2年半前端的大一学生,熟悉的技术是JavaScript与Vue.目前正在往全栈方向前进, 如果我的博客给您带来了帮助欢迎您关注我,我将会持续不断的更新文章!!!🙏🙏🙏

==页面打开显示文档请求错误请打开开发者工具查看具体原因==

Swagger请求not found 404

本人的解决方式是通过升级knife4j依赖解决的,具体解决办法如下

  1. 在各个pom.xml文件中替换掉knife4j的依赖

     <dependency>
             <groupId>com.github.xiaoymin</groupId>
             <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
             <version>${knife4j}</version>
     </dependency>
    

如果显示找不到knife4j的话就把他改成4.4.0

  1. 在主要的实体类中用Swagger 3注解替换掉Swagger 2注解,替换规则如下

     @Api(tags = “”)   →   @Tag(name = “”)
     @ApiModel(value=“”, description=“”)   →   @Schema(name=“”, description=“”)
     @ApiModelProperty(value = “”, required = true) → @Schema(name= “”, description = “”, required = true)
     @ApiOperation(value = “”, notes = “”) → @Operation(summary = “”, description = “”)
     @ApiParam → @Parameter
     @ApiResponse(code = 404, message = “”)   →   @ApiResponse(responseCode =404, description = “”)
    
  2. 修改配置类中的代码

     @Bean
     - public Docket docket() {
     -         ApiInfo apiInfo = new ApiInfoBuilder()
     -                .title("")
     -               .version("")
     -              .description("")
     -               .build();
     -       Docket docket = new Docket(DocumentationType.SWAGGER_2)
     -               .apiInfo(apiInfo)
     -               .select()
     -               .apis(RequestHandlerSelectors.basePackage("com.sky.controller"))
     -               .paths(PathSelectors.any())
     -               .build();
     -       return docket;
     + public OpenAPI publicAPI(){
     +    return new OpenAPI()
     +             .info(new Info()
     +                     .title("")
     +                     .description("")
     +                     .version("")
     +             );
     +  }
    

    大功告成🎉🎉🎉

报js错误

如果出现报js错误如:

image-20240727013645441.png

原因应该是设置了消息装换器导致json数据没有被正常解析

解决办法

将消息转换器的代码删掉

/**
     * 扩展Spring MVC框架的消息转换器,统一处理日期类型的格式
     */
    protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
   
        log.info("扩展消息转换器...");
        //创建一个消息转换器对象
        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
        //为消息转换器设置一个对象转换器,对象转换器可以将Java对象序列化为JSON数据
        converter.setObjectMapper(new JacksonObjectMapper());
        //将消息转换器加入容器中
        converters.add(0, converter);
    }

然后应该就可以正常显示了

结语

Hi👋,这里是瑞雨溪->一个喜欢JavaScript和Vue的大学生,如果我的文章给你带来的帮助,欢迎您关注我->我会持续不断的更新更多优质文章.你的关注就是我的动力!!!🎉🎉🎉

目录
相关文章
|
5月前
|
缓存 监控 Java
优化Spring Boot应用的数据库访问性能
优化Spring Boot应用的数据库访问性能
|
6月前
|
API Java 监控
SpringBoot基于OpenAPI3的接口文档管理快速集成和使用
本文主要简单介绍SpringCloud2023中进行接口文档管理,方便前后端开发和文档维护。文档管理工具基于开源的knife4j封装的openapi3。
164 3
|
3月前
|
Java Spring
springboot静态资源目录访问,及自定义静态资源路径,index页面的访问
本文介绍了Spring Boot中静态资源的访问位置、如何进行静态资源访问测试、自定义静态资源路径和静态资源请求映射,以及如何处理自定义静态资源映射对index页面访问的影响。提供了两种解决方案:取消自定义静态资源映射或编写Controller来截获index.html的请求并重定向。
springboot静态资源目录访问,及自定义静态资源路径,index页面的访问
|
2月前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
114 1
|
2月前
|
前端开发 Java
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
文章介绍了如何使用SpringBoot创建简单的后端服务器来处理HTTP请求,包括建立连接、编写Controller处理请求,并返回响应给前端或网址。
56 0
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
|
4月前
|
JavaScript 前端开发 Java
SpringBoot 引入 smart-doc 接口文档管理插件,以及统一接口返回,最后推送到 Torna,进行统一管理
本文介绍了如何在SpringBoot项目中整合smart-doc接口文档管理插件,实现接口文档的生成和统一管理,并展示了如何将文档推送到Torna接口文档管理系统进行进一步的集中管理。
251 0
SpringBoot 引入 smart-doc 接口文档管理插件,以及统一接口返回,最后推送到 Torna,进行统一管理
|
5月前
|
JSON 缓存 Java
Spring Boot集成 Swagger2 展现在线接口文档
本节课详细分析了 Swagger 的优点,以及 Spring Boot 如何集成 Swagger2,包括配置,相关注解的讲解,涉及到了实体类和接口类,以及如何使用。最后通过页面测试,体验了 Swagger 的强大之处,基本上是每个项目组中必备的工具之一,所以要掌握该工具的使用,也不难。
|
4月前
|
Java Spring
Spring Boot实战:静态资源无法访问
Spring Boot实战:静态资源无法访问
72 0
|
5月前
|
缓存 监控 Java
优化Spring Boot应用的数据库访问性能
优化Spring Boot应用的数据库访问性能
|
6月前
|
前端开发 JavaScript 网络协议
Springboot中为什么你能通过一小段代码来访问网页?
Springboot中为什么你能通过一小段代码来访问网页?
52 7