Knife4j是什么
Knife4j是一个集Swagger2和OpenAPI3为一体的Api文档增强工具
Spring Boot整合Knife4j
- 引入maven依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.3.6.RELEASE</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.9</version>
</dependency>
</dependencies>
- 创建Knife4j配置类
@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfig {
@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.xx.com/")
.contact("xx@qq.com")
.version("1.0")
.build())
//分组名称
.groupName("2.X版本")
.select()
//这里指定Controller扫描包路径
.apis(RequestHandlerSelectors.basePackage("com.xiaolin.knife4j.controller"))
.paths(PathSelectors.any())
.build();
return docket;
}
}
- 创建一个Controller
@RestController
@RequestMapping("/knife4j")
@Api(tags = "演示模块") // Knife4j注解,对Controller进行说明
public class HelloController {
@ApiOperation(value = "向客人问好") // Knife4j注解,对接口进行说明
@GetMapping("/sayHello")
public String sayHello(@RequestParam(value = "name") String name) {
return "sayHello:" + name;
}
}
- 启动Spring Boot项目并访问Knife4j
在浏览器中访问:http://ip:port/doc.html
- 测试 Knife4j
- 参考来源