一、前言
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配置的密码后如下图: