# API文档生成说明

## 概述

本项目使用JSDoc注释格式为API接口添加文档注释，并通过脚本自动生成OpenAPI格式的文档，可以直接导入到Apifox中进行API测试和文档管理。

## 使用方法

### 1. 生成API文档

```bash
# 方法1：使用npm脚本
npm run docs:generate

# 方法2：直接运行脚本
node scripts/generate-api-docs.js
```

### 2. 在Apifox中导入

1. 打开Apifox
2. 选择项目 → 导入
3. 选择"OpenAPI"格式
4. 导入生成的 `api-docs.yaml` 或 `api-docs.json` 文件
5. 完成导入后，所有接口注释都会显示在Apifox中

## JSDoc注释格式

### 基本结构

```javascript
/**
 * @api {method} path 接口名称
 * @apiName 接口名称
 * @apiGroup 分组名称
 * @apiVersion 版本号
 * 
 * @apiDescription 接口描述
 * 
 * @apiParam {Type} [paramName] 参数描述
 * @apiSuccess {Type} fieldName 返回字段描述
 * 
 * @apiSuccessExample {json} Success-Response:
 * HTTP/1.1 200 OK
 * {
 *   "status": true,
 *   "message": "成功",
 *   "data": {}
 * }
 */
```

### 参数类型

- `{String}` - 字符串类型
- `{Number}` - 数字类型
- `{Boolean}` - 布尔类型
- `{Object}` - 对象类型
- `{Array}` - 数组类型
- `{Date}` - 日期类型

### 参数说明

- `[paramName]` - 可选参数
- `paramName` - 必填参数
- `:id` - 路径参数

## 支持的API接口

目前已添加文档注释的接口：

1. **GET /admin/articles** - 查询文章列表
   - 支持分页：`currentPage`, `pageSize`
   - 支持筛选：`title`, `cropIds`, `categoryId`, `isRecommended`

2. **GET /admin/articles/:id** - 查询文章详情

3. **POST /admin/articles** - 创建文章
   - 必填字段：`title`, `content`
   - 可选字段：`subtitle`, `isRecommended`, `category`, `crop` 等

4. **PUT /admin/articles/:id** - 更新文章

5. **DELETE /admin/articles/:id** - 删除文章

## 文件说明

- `scripts/generate-api-docs.js` - API文档生成脚本
- `docs/api-docs.json` - 生成的JSON格式API文档
- `docs/api-docs.yaml` - 生成的YAML格式API文档

## 注意事项

1. 修改API接口后，需要重新运行生成脚本
2. JSDoc注释必须严格按照格式编写，否则可能解析失败
3. 生成的文档会覆盖之前的文件
4. 建议在每次API修改后都重新生成文档

## 扩展

如需为其他路由文件添加API文档，请：

1. 在相应的路由文件中添加JSDoc注释
2. 修改 `scripts/generate-api-docs.js` 中的文件路径
3. 重新运行生成脚本
