What is docfy-ui
AI 优先的 OpenAPI 文档界面,nestjs-docfy 的配套项目。轻量、现代的 API 参考,每个端点都带一个 Copy for AI 按钮。


动机
大多数 OpenAPI 界面都是给在页面上浏览的人用的,但这对今天读文档的另一类受众来说是错误的格式:你正准备粘贴进上下文里的那个 LLM。复制一个端点的细节通常意味着抓一段原始 JSON(冗长,充满 $ref 和噪音),或者复制渲染后的 HTML(丢失了结构)。
示例:Copy for AI
在同一个端点上点一下“Copy for AI”:
text
## Create a user
POST /users
### Request
{
"name": "string",
"email": "string"
}
### Responses
201 Created (UserEntity)
400 Bad Request
### Validation
- name: required, minLength 2
- email: required, format emaildocfy-ui 确定性地从任何 Swagger UI 已经在提供的同一份 OpenAPI 文档中渲染出这段文本,不需要额外标注,也不需要改动后端。
功能
- Copy for AI: 每个端点一键生成纯文本、可直接喂给 LLM 的摘要(用途、请求、响应、校验规则),不再是原始 JSON。
- Copy OpenAPI: 只复制当前选中端点、已解引用且对循环引用安全的 JSON 片段。
- Two-column endpoint view: 左边是文档(参数、响应、可浏览的 schema 树),右边是代码片段(curl、JavaScript、Python、Go)。
- Real-time search: 每敲一个字符就按 path/summary/operationId 过滤侧边栏,没有防抖,也不需要按 Enter。
- Dark/light theme: 基于 Token 驱动,切换主题即时生效,不刷新页面,首次渲染也不会闪一下错误主题。
- Zero backend coupling: 客户端拉取一份 OpenAPI 3.0/3.1 JSON 文档;只要服务器能提供这样一份文档就能用,不限于 NestJS。
- Mobile-responsive: 在
lg断点以下变成离屏抽屉,在 375/390/768px 下都验证过。 - Compare specs: 粘贴两个 spec 的 URL,就能看到新增/删除/变更的端点,每一处都标记为破坏性或提示性。
- Multi-spec switcher: 当宿主配置了多于一份 spec 时,可以在同一个实例里浏览多个服务,否则这部分完全隐藏。

