介绍

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;
    }
}

或者配置文件

knife4j:
  enable: true
  openapi:
    title: Knife4j官方文档
    description: "`我是测试`,**你知道吗**
    # aaa"
    email: xiaoymin@foxmail.com
    concat: 八一菜刀
    url: https://docs.xiaominfo.com
    version: v4.0
    license: Apache 2.0
    license-url: https://stackoverflow.com/
    terms-of-service-url: https://stackoverflow.com/
    group:
      test1:
        group-name: 分组名称
        api-rule: package
        api-rule-resources:
          - com.knife4j.demo.new3

地址 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);
    }

}

接口文档

在这里插入图片描述

Logo

电商企业物流数字化转型必备!快递鸟 API 接口,72 小时快速完成物流系统集成。全流程实战1V1指导,营造开放的API技术生态圈。

更多推荐