1.简介
Knife4j 是为 Java MVC 框架集成 Swagger 生成 Api 文档的增强解决方案,前身是 swagger-bootstrap-ui,致力于 springfox-swagger 的增强 UI 实现。knife4j 为了契合微服务的架构发展,由于原来 swagger-bootstrap-ui 采用的是后端 Java 代码 + 前端 UI 混合打包的方式,在微服务架构下显的很臃肿,因此项目正式更名为 knife4j,更名后主要专注的方面如下:
- 后端 Java 代码以及前端 UI 模块进行了分离,在微服务架构下使用更加灵活
- 提供专注于 Swagger 的增强解决方案,不同于只是单纯增强前端 UI 部分
2.整合环境
1.导入依赖
<!--swagger2-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
2.配置
spring.mvc.pathmatch.matching-strategy =ant-path-matcher
3.config
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket webApiConfig() {
return new Docket(DocumentationType.SWAGGER_2)
// 创建接口文档的具体信息
.apiInfo(webApiInfo())
// 创建选择器,控制哪些接口被加入文档
.select()
// 指定@ApiOperation标注的接口被加入文档
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.build();
}
private ApiInfo webApiInfo() {
return new ApiInfoBuilder()
// 文档标题
.title("标题:学校管理系统接口文档")
// 文档描述
.description("描述:本文档描述了学校管理系统的接口定义")
// 版本
.version("1.0")
// 联系人信息
.contact(new Contact("方书帆", "", ""))
// 版权
.license("")
// 版权地址
.licenseUrl("")
.build();
}
4.model
@ApiModel(value = "学生表",description = "学生实体")
public class Student {
@ApiModelProperty(value = "主键")
private int id;
@ApiModelProperty(value = "学生名字")
private String StuName;
}
5.controller
@RequestMapping("user")
@Api(tags = "用户控制器")
public class UserController {
@RequestMapping(value = "getUser",method = RequestMethod.GET)
@ApiOperation(value = "查询所有学生",notes = "查询所有用户信息")
public String getUser(int id,String name){
return name;
}