一、前言

knife4j 是为Java MVC框架集成Swagger生成Api文档的增强解决方案(在非Java项目中也提供了前端UI的增强解决方案),前身是swagger-bootstrap-ui,取名knife4j是希望她能像一把匕首一样小巧,轻量,并且功能强悍!

二、快速使用

2.1 依赖引入

老版本引用

1
2
3
4
5
        <dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>1.9.6</version>
</dependency>

新版本引用

1
2
3
4
5
        <dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.2</version>
</dependency>

2.2 application.yml配置

这里我们为knife4j访问增加密码

1
2
3
4
5
knife4j:
basic:
enable: true
username: admin
password: 123456

2.3 创建Swagger配置依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@Configuration
public class Knife4jConfiguration {

@Bean(value = "defaultApi2")
public Docket defaultApi2() {
Docket docket=new Docket(DocumentationType.SWAGGER_2)
.apiInfo(new ApiInfoBuilder()
//.title("swagger-bootstrap-ui-demo RESTful APIs")
.description("# swagger-bootstrap-ui-demo RESTful APIs")
.termsOfServiceUrl("http://www.wno704.com/")
.contact(new Contact("wno704", "http://www.wno704.com", "wno704@126.com"))
.version("1.0")
.build())
//分组名称
.groupName("2.X版本")
.select()
//这里指定Controller扫描包路径
.apis(RequestHandlerSelectors.basePackage("com.springboot.boot.controller"))
.paths(PathSelectors.any())
.build();
return docket;
}

}

2.4 编写测试类

1
2
3
4
5
6
7
8
9
10
@Api(tags = "测试模块")
@RestController
public class Knife4jController {
@ApiImplicitParam(name = "name",value = "姓名",required = true)
@ApiOperation(value = "向客人问好")
@GetMapping("/sayHi")
public ResponseEntity<String> sayHi(@RequestParam(value = "name")String name){
return ResponseEntity.ok("Hi:"+name);
}
}

2.5 测试

访问 http://127.0.0.1:8080/doc.html , 如下:

输入上面application.yml配置的密码后如下图: