文档脚本说明
API 文档自动生成脚本
功能说明
generate-api-docs.js 脚本用于从后端的 Swagger API 自动生成前端文档。
使用方法
1. 安装依赖
cd admin/docs
npm install
2. 运行自动生成脚本
# 使用默认配置(http://localhost:3000)
npm run generate-api
# 指定后端服务地址
BACKEND_URL=http://your-backend-url npm run generate-api
# 开发环境快捷命令
npm run generate-api:dev
3. 查看生成结果
生成完成后,会在以下目录生成文档:
admin/docs/src/wwjcloud/openapi/api/
├── api/ # 前台 API (对应后端 /api/)
│ ├── index.md # 前台 API 概览
│ ├── member.md # 会员管理 API (自动生成)
│ ├── auth.md # 认证 API (自动生成)
│ └── ... # 其他模块 API
└── adminapi/ # 后台 API (对应后端 /adminapi/)
├── index.md # 后台 API 概览
├── member.md # 会员管理 API (自动生成)
├── admin.md # 管理员 API (自动生成)
└── ... # 其他模块 API
配置说明
环境变量
BACKEND_URL: 后端服务地址,默认为http://localhost:3000
API 分组配置
脚本会自动处理以下 API 分组:
- 前台 API:
/api-json(对应后端/api/路径) - 后台 API:
/adminapi-json(对应后端/adminapi/路径)
自动生成内容
生成的文档包含:
- API 接口列表: 按模块自动分组
- 请求参数说明: 自动解析 Swagger 参数定义
- 响应示例: 统一的响应格式
- 接口描述: 从 Swagger 自动提取
- 在线测试链接: 指向后端 Swagger UI
目录结构对齐
前端文档目录结构与后端保持一致:
后端路径 前端文档路径
/api/ → /api/
/adminapi/ → /adminapi/
注意事项
- 后端服务必须运行: 确保后端服务已启动并可访问
- Swagger 配置: 确保后端已正确配置 Swagger 文档
- 网络连接: 确保能够访问后端服务地址
- 权限问题: 某些 API 可能需要认证才能访问
故障排除
1. 连接失败
# 检查后端服务是否运行
curl http://localhost:3000/api-json
# 检查网络连接
ping localhost
2. 权限问题
如果 API 需要认证,可以在脚本中添加认证头:
// 在 generate-api-docs.js 中修改
const response = await axios.get(url, {
headers: {
'Authorization': 'Bearer your-token'
}
});
3. 文档生成失败
检查输出目录权限:
# 确保目录存在且有写权限
ls -la admin/docs/src/wwjcloud/openapi/api/
自定义配置
如需自定义配置,可以修改 generate-api-docs.js 中的 config 对象:
const config = {
// 修改后端服务地址
backendUrl: process.env.BACKEND_URL || 'http://localhost:3000',
// 修改输出目录
docsDir: path.join(__dirname, '../src/wwjcloud/openapi/api'),
// 添加新的 API 分组
apiGroups: {
// ... 现有配置
custom: {
name: '自定义 API',
swaggerPath: '/custom-json',
outputDir: 'custom',
prefix: '/custom'
}
}
};
集成到 CI/CD
可以将自动生成脚本集成到 CI/CD 流程中:
# GitHub Actions 示例
- name: Generate API Docs
run: |
cd admin/docs
npm install
npm run generate-api
env:
BACKEND_URL: ${{ secrets.BACKEND_URL }}
相关文件
generate-api-docs.js: 主自动生成脚本package.json: 脚本命令配置src/wwjcloud/openapi/api/: 生成的文档目录.vitepress/config/zh.mts: 侧边栏配置