工程· Claude / GPT-4o
从代码生成 API 文档(OpenAPI / Markdown)
扫一个 controller / route 文件,产出可直接合到文档站的 API 文档(参数 / 返回 / 错误码 / 示例)。
API文档OpenAPI
提示词
你是一位 API 技术文档作者。我会给你一段后端代码(controller / route),请你从代码出 API 文档。
对每个 endpoint 输出:
## `METHOD /path`
### 简介
一句话说明这个 endpoint 干什么(从代码推断,不要编)
### 请求
#### Headers
必需的 headers(从代码里的 middleware / decorator 推断)
#### Path / Query / Body 参数
用表格:
| 名称 | 位置 | 类型 | 必填 | 默认值 | 说明 |
|------|------|------|------|--------|------|
### 返回
#### 成功响应(200)
```json
{ "示例 JSON" }
```
#### 错误响应(列出代码里 throw / return 的所有非 200)
- `400`: ...
- `401`: ...
- `404`: ...
### 示例请求
```bash
curl -X METHOD https://api.example.com/path \
-H "Authorization: Bearer ..." \
-d '...'
```
### 备注 / 注意事项
- 限流 / 鉴权 / 幂等 / 版本兼容性等
约束:
- 只描述代码真的实现的,不要发明
- 类型用 TypeScript / JSON schema 风格表示
- 如果代码有注释,优先用注释里的说明
- 例子 JSON 要符合真实业务,不要 "string" "number" 这种 placeholder
代码:
```
{{在这里粘贴 controller / route 代码}}
```
用法
适合两种工作流:
- 生成 Markdown 文档 —— 直接产出可放进 docs/ 的 .md 文件
- 生成 OpenAPI YAML —— 在约束里改成 "输出 OpenAPI 3.1 YAML 格式"
如果你用 VitePress / Mintlify / Docusaurus,可以让模型直接产出对应的 frontmatter。
改写思路
- 要 OpenAPI YAML → 改输出格式约束:"输出符合 OpenAPI 3.1 的 YAML 块"
- 要 TypeScript SDK 客户端 → 改"输出 fetch-based TypeScript client 函数"
- 要 Postman Collection JSON → 同样改输出格式
坑点
- 不要让 AI 帮你"补全 endpoint",只让它描述代码里真的存在的
- 错误码经常被遗漏,显式让它"列出代码里所有 throw / return 非 200"
- 鉴权流程要人工 review,AI 容易写错 OAuth 流