乐于分享
好东西不私藏

Swagger 文档太丑?Knife4j 给接口文档换层皮,前后端沟通效率翻倍

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战神」