knife4j接口文档的使用

📅 2026/6/17 5:48:53
knife4j接口文档的使用
前言Knife4j是Swagger (OpenAPI)的增强版 UI专为 Java Spring Boot 项目设计。它比原生 Swagger UI 更美观、功能更强大支持离线文档、参数缓存、调试等。由于你使用的是Spring Boot 3.2.x和Java 17你需要使用Knife4j 4.x版本基于 OpenAPI 3 / SpringDoc而不是旧版的 3.x基于 Swagger 2。更多使用及详情可参考Knife4j文档链接一.如何查看 Spring Boot版本Spring Boot版本号可在启动日志的打印中查看或者查看pom.xml文件中如下内容parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.2.12/version!--✅ 稳定版避免兼容性问题--relativePath//parent启动日志截图二.引入knife4j第一步引入依赖到pom.xml文件中dependencygroupIdcom.github.xiaoymin/groupIdartifactIdknife4j-openapi3-jakarta-spring-boot-starter/artifactIdversion4.5.0/version!--推荐使用最新稳定版--/dependency第二步修改TestControllerpackagecom.example.demo.controller;importio.swagger.v3.oas.annotations.Operation;importio.swagger.v3.oas.annotations.tags.Tag;importlombok.extern.slf4j.Slf4j;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;Slf4jRestControllerRequestMapping(/test)Tag(name测试控制器,description用于测试日志和基础功能)// 分组标签publicclassTestController{GetMapping(/test/log)Operation(summary测试日志输出,description调用此接口会在后端控制台打印各级别日志)// 接口说明publicStringtestLog(){log.trace(这是 TRACE 日志);log.debug(这是 DEBUG 日志);log.info(这是 INFO 日志);log.warn(这是 WARN 日志);log.error(这是 ERROR 日志);return日志已经打印请查看 IDEA 控制台;}}第三步修改UserControllerpackagecom.example.demo.controller;importcom.baomidou.mybatisplus.core.metadata.IPage;importcom.example.demo.entity.User;importcom.example.demo.service.UserService;importio.swagger.v3.oas.annotations.Operation;importio.swagger.v3.oas.annotations.Parameter;importio.swagger.v3.oas.annotations.tags.Tag;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.web.bind.annotation.*;importjava.util.HashMap;importjava.util.Map;RestControllerRequestMapping(/users)Tag(name用户管理,description用户的增删改查接口)// 分组标签publicclassUserController{AutowiredprivateUserServiceuserService;GetMapping(/page)Operation(summary分页查询用户,description根据页码和每页大小查询用户列表)publicMapString,ObjectgetPage(Parameter(description当前页码,example1)RequestParam(defaultValue1)intpageNum,Parameter(description每页数量,example10)RequestParam(defaultValue10)intpageSize){IPageUseruserPageuserService.getUserPage(pageNum,pageSize);MapString,ObjectresultnewHashMap();result.put(code,200);result.put(data,userPage.getRecords());result.put(total,userPage.getTotal());returnresult;}}第四步启动应用并访问1.重启 Spring Boot 应用。2.打开浏览器访问http://localhost:8080/doc.html如图点击分页接口截图会根据我们用knife4j写的信息而展示