SpringBoot使用knife4j生成接口API文档
knife4j是对swagger-ui的界面进行升级,方便后端人员测试接口;同时在进行前后端对接时,对前端人员来说使用也很简单,接口信息都清清楚楚。
一、首先在pom中引入依赖
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.2</version>
</dependency>
二、knife4j配置文件,要修改对应的controller包路径
package com.linht.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* @author: linht
* Date: 2020/10/21 16:05.
* Description:
*/
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket createRestApi() {
//注意:RequestHandlerSelectors.basePackage("com.linht") 指定接口包路径
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(this.apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.linht"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
//api相关信息
return new ApiInfoBuilder()
.title("Person APIs")
.description("my-test http://www.test.com.cn/")
.termsOfServiceUrl("http://www.test.com.cn/")
.version("1.0")
.build();
}
}
三、controller类
@RestController
@Api(tags = "用户接口")
public class UserControler {
@Autowired
private UserDao userDao;
@GetMapping("/addUser")
@ApiOperation(value = "增加User")
@ApiImplicitParam(name = "name",value = "用户名", required = true)
public User addUser(@RequestParam String name){
User user = new User();
user.setUsername(name);
user.setAge(18);
user.setBirth(new Date());
userDao.insertUser(user);
return user;
}
说明:
@Api,整个类的注释
@ApiOperation,方法上的注释
@ApiImplicitParams,参数列表的注释
@ApiImplicitParam,每一个参数的注释
@ApiModel,实体类的注解
@ApiModelProperty,字段的注解
四、通过http://localhost:8081/doc.html,项目访问地址+doc.html访问
主页:
接口信息:
可以对接口进行调试