介绍
Knife4j 是一款基于 Swagger 构建的增强型 API 文档生成工具,它提供了更多的定制化功能和界面优化,使得生成的 API 文档更加美观和易用。它可以帮助开发者快速生成和管理 API 文档,支持在线调试和交互。
依赖
<!--knife4j-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
<version>4.0.0</version> <!-- 可以根据需要替换为最新版本 -->
</dependency>
配置类
@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfig {
@Bean
public Docket Api(){
Docket docke= new Docket(DocumentationType.SWAGGER_2)
.apiInfo(new ApiInfoBuilder()
.title("学生管理系统") //文档名称
.description("基于SpringBoot的学生管理系统") //介绍
.termsOfServiceUrl("xxxxx") //服务条款
.contact(new Contact("生产队的驴","http://local:8080","6666@qq.com")) //作者信息
.license("无") //许可证
.licenseUrl("无") //许可证地址
.version("V1.0") //版本
.build()) //构建
.groupName("开发环境") //分组
.select()
.apis(RequestHandlerSelectors.basePackage("com.mybatis.mybatisplusdemo.controller"))
//查找的包名
.build()
;
return docke;
}
}
地址 http://127.0.0.1:9090/doc.html
实体类
@Data
@ApiModel("部门")
public class Emp {
@ApiModelProperty("编号")
private int id;
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("电话")
private String tele;
@ApiModelProperty("性别")
private char gender;
@ApiModelProperty("日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate birthday;
@ApiModelProperty("工资")
private float salary;
@ApiModelProperty("职位")
private String post;
private int depNo;
}
控制器
@RestController
@RequestMapping("/emp")
@RequiredArgsConstructor //只初始化必备的变量
@Api(tags = "部门管理")
public class EmpController {
private final IEmpService empService ;
@PostMapping()
@ApiOperation(value = "添加部门成员")
public Result add(@RequestBody Emp emp){
Boolean isSuccess= empService.save(emp);
return Result.success("操作成功",isSuccess);
}
@GetMapping()
@ApiOperation(value = "获取员工列表")
public Result getEmpList(@RequestParam List<Integer> ids){
List<Emp> list =empService.listByIds(ids);
return Result.success("获取成功",list);
}
@GetMapping("/search")
@ApiOperation(value = "查询员工")
public Result search(Emp emp){
System.out.println(emp);
List<Emp> list =empService.searchList(emp);
return Result.success("操作成功",list);
}
}