一、介绍
Knife4j
它是对swagger
在线接口文档的一个增强,在 swagger
上做了一个更好看皮肤的同时加了一些新的功能。
Knife4j 由国人程序员萧明于 2017 年开源,距今为止 Star 数已经超过了 6.1k 了。
Swagger 可以较好的接口接口文档的交互问题,以一套标准的规范定义接口以及相关的信息,就能做到生成各种格式的接口文档,生成多种语言和客户端和服务端的代码,以及在线接口调试页面等等。只需要更新 Swagger 描述文件,就能自动生成接口文档,做到前端、后端联调接口文档的及时性和便利性。
二、使用
常用注解
- @Api
该注解用在Controller上, 表示对类的说明。
相关属性:
tags:说明该类的作用,可以在前台界面上看到的注解
@Api(tags = "员工相关接口")
public class EmployeeController {
}
-
@ApiModel
该注解是作用于DTO,entity, VO类上面的,是用来描述类的一些基本信息的。 -
@ApiModelProperty
用在属性上, 描述属性信息
@ApiModel(description = "员工登录时传递的数据模型")
public class EmployeeLoginDTO implements Serializable {
@ApiModelProperty("用户名")
private String username;
@ApiModelProperty("密码")
private String password;
}
- @ApiOperation
-用在Controller的方法中,说明方法的用途;
@PostMapping("/logout")
@ApiOperation(value = "员工退出")
public Result<String> logout() {
return Result.success();
}
}
依赖导入
<!-- knife4j -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>
Configer的配置
public class WebMvcConfiguration extends WebMvcConfigurationSupport {
/**
* 通过knife4j生成接口文档
* @return
*/
@Bean
public Docket docket() {
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) {
registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}