# 文档脚本说明

## API 文档自动生成脚本

### 功能说明

`generate-api-docs.js` 脚本用于从后端的 Swagger API 自动生成前端文档。

### 使用方法

#### 1. 安装依赖

```bash
cd admin/docs
npm install
```

#### 2. 运行自动生成脚本

```bash
# 使用默认配置（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/
```

### 注意事项

1. **后端服务必须运行**: 确保后端服务已启动并可访问
2. **Swagger 配置**: 确保后端已正确配置 Swagger 文档
3. **网络连接**: 确保能够访问后端服务地址
4. **权限问题**: 某些 API 可能需要认证才能访问

### 故障排除

#### 1. 连接失败

```bash
# 检查后端服务是否运行
curl http://localhost:3000/api-json

# 检查网络连接
ping localhost
```

#### 2. 权限问题

如果 API 需要认证，可以在脚本中添加认证头：

```javascript
// 在 generate-api-docs.js 中修改
const response = await axios.get(url, {
  headers: {
    'Authorization': 'Bearer your-token'
  }
});
```

#### 3. 文档生成失败

检查输出目录权限：

```bash
# 确保目录存在且有写权限
ls -la admin/docs/src/wwjcloud/openapi/api/
```

### 自定义配置

如需自定义配置，可以修改 `generate-api-docs.js` 中的 `config` 对象：

```javascript
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 流程中：

```yaml
# 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`: 侧边栏配置 