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

1.个人介绍

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

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

2.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("")
    +			 );
    +  }
    

    大功告成🎉🎉🎉

3.报js错误

如果出现报js错误如:

在这里插入图片描述

原因应该是设置了消息装换器导致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的大学生,如果我的文章给你带来的帮助,欢迎您关注我->**我会持续不断的更新更多优质文章.你的关注就是我的动力!!!🎉🎉🎉

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐