Swagger 文档太丑?Knife4j 给接口文档换层皮,前后端沟通效率翻倍
💡 你可能不知道
Swagger 文档丑到不想看?Knife4j 给 Swagger 加了一层皮肤,配合增强功能:请求参数校验、离线导出、接口搜索、全局接口搜索——前后端沟通效率直接翻倍。
项目简介
Knife4j 是 Swagger 的增强前端,为 Java 开发者提供更美观的接口文档界面。它在 Swagger 注解的基础上,增加了参数校验、接口搜索、文档分组、全局搜索、导出 PDF/Markdown 等功能,是前后端分离项目中接口文档的首选工具。
📍 GitHub:github.com/xiaoymin/knife4j
⭐ Stars:11K+ | License:Apache 2.0
🏷️ 关键词:接口文档、Swagger、Knife4j、API 文档、Spring Boot
核心特点
🎨 增强 UI
重新设计文档界面,比原生 Swagger 好看 10 倍。深色主题、响应式布局、文档分组、接口搜索,全部支持。
✅ 参数校验
配合 @Validated 注解,自动校验请求参数。前端在文档页面填写参数,点击发送,自动展示校验结果,无需 Postman。
📥 离线导出
支持导出 OpenAPI 规范的 JSON/YAML,也支持导出 PDF、Markdown 文档。离线后发给前端,不用给服务器地址。
🔒 安全增强
支持设置访问密码、配置全局 Authorization、IP 白名单、接口脱敏。文档安全性更高,防止接口泄露。
快速上手
1️⃣ Maven 依赖:
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-openapi3-spring-boot-starter</artifactId> <version>4.5.0</version> </dependency>
2️⃣ 配置(application.yml):
knife4j: enable: true documents: - name: user locations: classpath:doc/user.md setting: language: zh_cn
3️⃣ Controller 示例:
@Tag(name = "用户接口", description = "用户相关接口") @RestController @RequestMapping("/api/user") public class UserController { @Operation(summary = "分页查询用户") @PostMapping("/list") public R<PageResult<UserVO>> list( @RequestBody @Valid @RequestBody UserQuery query) { return R.ok(userService.queryPage(query)); } @Operation(summary = "新增用户") @PostMapping public R<Void> add(@Valid @RequestBody UserDTO dto) { userService.add(dto); return R.ok(); } }
适用场景
🔗 前后端分离 — 前端实时查看接口定义,减少沟通成本
📄 接口文档 — 自动生成文档,无需手动维护
✅ 接口测试 — 在文档页面直接测试接口
📥 离线文档 — 导出 PDF 给外部合作方
🔒 接口安全 — 设置密码、脱敏,保护接口文档
总结
Knife4j 给 Swagger 换了一层皮肤,加了一层增强,是 Java 接口文档的事实标准。11K Star,作者是小马哥(Spring Boot Contributor),质量和活跃度都有保障。
如果你还在让前端自己看代码理解接口,或者用 Word 写接口文档,是时候换成 Knife4j 了。
👉 Star 项目:github.com/xiaoymin/knife4j
关注「cv战神」,回复 接口文档 获取注解速查表
扫码关注「cv战神」
夜雨聆风