Knife4j介绍
knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案
官方文档地址:https://doc.xiaominfo.com/
前置
springboot版本: 2.3.5.RELEASE
Knife4j:2.0.7
集成步骤
1、引入Knife4j依赖
<dependency>
groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.7</version>
</dependency>
2、新增配置类
@Configuration
@EnableSwagger2WebMvc
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.xx.com/")
.contact("xx@qq.com")
.version("1.0")
.build())
//分组名称
.groupName("2.X版本")
.select()
//这里指定Controller扫描包路径
.apis(RequestHandlerSelectors.basePackage("com.github.xiaoymin.knife4j.controller"))
.paths(PathSelectors.any())
.build();
return docket;
}
}
注意:.apis(RequestHandlerSelectors.basePackage("com.github.xiaoymin.knife4j.controller"))
需要修改成自己的controller的包扫描路径
3、实体类
@Data
@ApiModel(value = "用户对象")
public class User {
@ApiModelProperty(value = "姓名")
private String name;
@ApiModelProperty(value = "身份证")
private String cardNum;
}
4、controller
@Api(value = "UserController", tags = "用户管理")
@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {
@Autowired
private UserService userService;
@ApiOperation(value = "新增用户", notes = "新增用户")
@PostMapping("/add")
public JsonResult add(User user) {
log.info("请求参数:{}", JSONUtil.toJsonStr(user));
return JsonResult.success("成功", userService.add(user));
}
}
配置完成,启动项目
请求地址:http://localhost:8080/doc.html#/ ,界面如下