您的当前位置:首页正文

SpringBoot 通过Knife4j集成API文档 在线调试

2024-11-30 来源:个人技术集锦

介绍

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

实体类

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

}

接口文档

显示全文