Knife4j是基于SpringBoot构建的一个文档生成工具,它可以让开发者为我们的应用生成在线API文档; 目的是可以更加方便的基于API文档进行测试。 生成的文档还可以导出,然后给到前端开发团队,前端开发团队可以基于API接口写具体的调用。 是基于Swagger框架实现的。
添加依赖
在Spring Boot项目中,使用Knife4j需要添加依赖knife4j-spring-boot-starter:
<!--添加Knife4j依赖-->
<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>2.0.9</version><!--<version>4.3.0</version>-->
</dependency>
配置类
在项目的xxx.config包下创建Knife4jConfig类:
/**
-
配置类,注册web层相关组件
*/
@Configuration
@Slf4j
public class WebMvcConfiguration extends WebMvcConfigurationSupport {/**
- 通过knife4j生成接口文档
- @return
*/
@Bean
public Docket docket() {
log.info(“准备生成接口文档…”);
ApiInfo apiInfo = new ApiInfoBuilder()
.title(“苍穹外卖项目接口文档”)
.version(“2.0”)
.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) {
log.info(“开始设置静态资源映射…”);
registry.addResourceHandler(“/doc.html”).addResourceLocations(“classpath:/META-INF/resources/”);
registry.addResourceHandler(“/webjars/**”).addResourceLocations(“classpath:/META-INF/resources/webjars/”);
}
在控制器类及其接口方法上添加注解 @Api 以及@ApiOperation
@RestController("adminShopController")
@RequestMapping("/admin/shop")
@Api(tags = "店铺相关接口")
@Slf4j
public class ShopController {@GetMapping("/{status}")@ApiOperation("获取店铺的营业状态")public Result<Integer> getStatus() {}
}