版本说明:
- Spring Boot: 3.2.2
- knife4j:4.4.0
遇到的问题
导入以下依赖后,访问http://localhost:8080/doc.htm显示knife4j文档请求异常,查看控制台发现找不到/v3/api-docs/swagger-config
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.4.0</version>
</dependency>
解决问题
必须配合swagger-ui一起使用。
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.4.0</version>
</dependency>
然后创建一个配置类。(博主没有设置相关yml配置)配置类代码:
package com.examlp.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
@Configuration
public class Knife4jConfig {
@Bean
public OpenAPI springOpenAPI() {
return new OpenAPI().info(new Info() //
.title("SpringDoc API Test") //
.description("SpringDoc Simple Application Test") //
.version("0.0.1"));
}
}
然后就可以正常访问这两个链接了
swagger-ui:http://localhost:8080/swagger-ui/index.html
knife4j:http://localhost:8080/doc.html
总结:
knife4j:是基于swagger的,所以要先能正常访问swagger-ui的链接,才能正常使用knife4j的功能。