knife4j的使用
参考资料:B站黑马
注意:我的springboot版本2.7.3,knife4j3.0.2。注意版本兼容,可以查看官方文档
1. 背景
在项目开发完成后,我们会进行接口测试。通常我们会使用postman测试接口,但是需要我们手动输入接口url和参数等信息,效率不高。所以,能不能有一种工具可以根据我们的项目自动生成测试文档呢?Swagger就很好的提供了解决方案
2. 步骤
2.1 导入坐标
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.2</version>
</dependency>
2.2 容器中注入bean
加入到
WebMvcConfigurationSupport
的springMVC的配置类中
@Configuration
@Slf4j
public class WebMvcConfiguration extends WebMvcConfigurationSupport {
/**
* 通过knife4j生成接口文档
* @return
*/
@Bean
public Docket docket() {
ApiInfo apiInfo = new ApiInfoBuilder()
.title("苍穹外卖项目接口文档") // 生成的文档名称
.version("2.0") //swagger版本
.description("苍穹外卖项目接口文档")
.build();
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo)
.select()
.apis(RequestHandlerSelectors.basePackage("com.sky.controller")) //控制器包名
.paths(PathSelectors.any())
.build();
return docket;
}
}
2.3 设置静态资源映射
一定要设置静态资源映射,因为服务启动后,需要在浏览器访问
localhost:端口号/doc.html
。如果不进行静态资源映射的话,会将这个请求路径交给controller请求(No Mapping)
在springMVC配置类中定义
@Configuration
@Slf4j
public class WebMvcConfiguration extends WebMvcConfigurationSupport {
/**
* 通过knife4j生成接口文档
* @return
*/
@Bean
public Docket docket() {
ApiInfo apiInfo = new ApiInfoBuilder()
.title("苍穹外卖项目接口文档") // 生成的文档名称
.version("2.0") //swagger版本
.description("苍穹外卖项目接口文档")
.build();
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo)
.select()
.apis(RequestHandlerSelectors.basePackage("com.sky.controller")) //控制器包名
.paths(PathSelectors.any())
.build();
return docket;
}
/**
* 设置静态资源映射
* @param registry
*/
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META- INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
3.使用
项目启动后,在浏览器键入
localhost:端口号/doc.html
(端口号是你项目使用的端口号)
我的控制器中有一个EmployeeController
,可以从浏览器左侧菜单看到自动生成的测试接口。