springboot中使用knife4j访问接口文档的一系列问题
个人介绍
🎉🎉🎉欢迎来到我的博客,我是一名自学了2年半前端的大一学生,熟悉的技术是JavaScript与Vue.目前正在往全栈方向前进, 如果我的博客给您带来了帮助欢迎您关注我,我将会持续不断的更新文章!!!🙏🙏🙏
==页面打开显示文档请求错误请打开开发者工具查看具体原因==
Swagger请求not found 404
本人的解决方式是通过升级knife4j依赖解决的,具体解决办法如下
在各个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
在主要的实体类中用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 = “”)
修改配置类中的代码
@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错误如:
原因应该是设置了消息装换器导致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的大学生,如果我的文章给你带来的帮助,欢迎您关注我->我会持续不断的更新更多优质文章.你的关注就是我的动力!!!🎉🎉🎉