hookehuyr

docs(api-generator): 添加 OpenAPI 转 API 生成器快速开始指南

## 新增
- scripts/api-generator/QUICKSTART.md
  - 一分钟快速上手教程
  - 常见场景示例
  - 配置和自定义说明
  - 调试技巧

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 +# OpenAPI 转 API 文档生成器 - 快速开始
2 +
3 +## 🎯 一分钟快速上手
4 +
5 +### 1️⃣ 创建 OpenAPI 文档
6 +
7 +`docs/api-specs/` 目录下创建模块和接口文档:
8 +
9 +```bash
10 +# 创建新模块
11 +mkdir -p docs/api-specs/product
12 +
13 +# 创建接口文档
14 +touch docs/api-specs/product/getList.md
15 +```
16 +
17 +### 2️⃣ 编写 OpenAPI 规范
18 +
19 +编辑 `getList.md`
20 +
21 +```markdown
22 +# 获取商品列表
23 +
24 +## OpenAPI Specification
25 +
26 +\```yaml
27 +openapi: 3.0.1
28 +info:
29 + title: ''
30 + version: 1.0.0
31 +paths:
32 + /srv/:
33 + get:
34 + summary: 获取商品列表
35 + tags:
36 + - 商品
37 + parameters:
38 + - name: a
39 + in: query
40 + example: product_list
41 + - name: f
42 + in: query
43 + example: behalo
44 + responses:
45 + '200':
46 + description: 成功
47 +\```
48 +```
49 +
50 +### 3️⃣ 生成 API 文件
51 +
52 +```bash
53 +pnpm api:generate
54 +```
55 +
56 +### 4️⃣ 使用生成的 API
57 +
58 +```javascript
59 +import { getListAPI } from '@/api/product';
60 +
61 +const result = await getListAPI({ page: 1, pageSize: 10 });
62 +```
63 +
64 +## ✅ 验证结果
65 +
66 +运行测试脚本验证生成的文件:
67 +
68 +```bash
69 +node scripts/test-generate.js
70 +```
71 +
72 +## 📂 文件结构
73 +
74 +```
75 +manulife-weapp/
76 +├── docs/
77 +│ ├── api-specs/ # API 规范文档源目录
78 +│ │ └── user/ # 模块目录
79 +│ │ └── getUserInfo.md
80 +│ ├── OPENAPI_TO_API_GUIDE.md # 详细使用指南
81 +│ └── API_USAGE_EXAMPLES.md # API 使用示例
82 +├── scripts/
83 +│ ├── generateApiFromOpenAPI.js # 生成器核心脚本
84 +│ └── test-generate.js # 测试脚本
85 +├── src/
86 +│ └── api/ # 生成的 API 文件目录
87 +│ ├── user.js # 自动生成
88 +│ ├── wx/
89 +│ └── index.js
90 +└── package.json # 包含 api:generate 命令
91 +```
92 +
93 +## 🔄 工作流程
94 +
95 +```mermaid
96 +graph LR
97 + A[编写 OpenAPI 文档] --> B[运行 pnpm api:generate]
98 + B --> C[生成 API 文件]
99 + C --> D[在项目中使用]
100 + D --> E[需要修改接口]
101 + E --> A
102 +```
103 +
104 +## 🎨 常见场景
105 +
106 +### 场景 1: 批量生成多个接口
107 +
108 +```bash
109 +docs/api-specs/
110 +├── user/
111 +│ ├── getUserInfo.md
112 +│ ├── updateProfile.md
113 +│ └── changePassword.md
114 +└── order/
115 + ├── getList.md
116 + └── getDetail.md
117 +```
118 +
119 +运行 `pnpm api:generate` 后生成:
120 +
121 +```
122 +src/api/
123 +├── user.js # 包含 3 个接口
124 +└── order.js # 包含 2 个接口
125 +```
126 +
127 +### 场景 2: 更新已有接口
128 +
129 +1. 修改 `docs/api-specs/user/getUserInfo.md`
130 +2. 运行 `pnpm api:generate`
131 +3. `src/api/user.js` 自动更新
132 +
133 +### 场景 3: 添加新模块
134 +
135 +1. 创建 `docs/api-specs/payment/`
136 +2. 添加接口文档
137 +3. 运行生成命令
138 +4. 自动生成 `src/api/payment.js`
139 +
140 +## ⚙️ 配置和自定义
141 +
142 +### 修改输出目录
143 +
144 +编辑 `scripts/generateApiFromOpenAPI.js`
145 +
146 +```javascript
147 +const outputDir = path.resolve(__dirname, '../src/api');
148 +// 改为你想要的目录
149 +const outputDir = path.resolve(__dirname, '../src/apis');
150 +```
151 +
152 +### 修改命名规则
153 +
154 +编辑 `toCamelCase()``toPascalCase()` 函数。
155 +
156 +### 修改生成模板
157 +
158 +编辑 `generateApiFileContent()` 函数。
159 +
160 +## 🐛 调试技巧
161 +
162 +### 启用详细日志
163 +
164 +在脚本中添加更多 console.log:
165 +
166 +```javascript
167 +console.log('解析的 API 信息:', JSON.stringify(apiInfo, null, 2));
168 +```
169 +
170 +### 单独测试某个模块
171 +
172 +修改脚本中的模块过滤逻辑。
173 +
174 +### 查看生成的中间数据
175 +
176 +添加调试输出查看 YAML 解析结果。
177 +
178 +## 📞 获取帮助
179 +
180 +- 详细指南:[OpenAPI 转 API 文档生成器指南](./OPENAPI_TO_API_GUIDE.md)
181 +- 使用示例:[API 使用示例](./API_USAGE_EXAMPLES.md)
182 +- 项目架构:[CLAUDE.md](../CLAUDE.md)
183 +
184 +## 🎉 开始使用
185 +
186 +现在你已经准备好了!开始创建你的第一个 OpenAPI 文档吧。
187 +
188 +```bash
189 +# 1. 创建模块目录
190 +mkdir -p docs/api-specs/your-module
191 +
192 +# 2. 创建接口文档(参考 docs/api-specs/user/getUserInfo.md)
193 +
194 +# 3. 生成 API
195 +pnpm api:generate
196 +
197 +# 4. 查看生成的文件
198 +cat src/api/your-module.js
199 +
200 +# 5. 开始使用
201 +```
202 +
203 +祝你编码愉快!🚀