refactor(api): 更新 API调用以使用新的请求工具- 将所有 API 调用中的 request-legacy 替换为 request

- 优化部分 API 调用的参数传递方式
- 统一导入 ApiResult 和 PageResult 类型的路径
This commit is contained in:
2025-08-18 20:39:31 +08:00
parent ef134316b0
commit 06a3b15842
128 changed files with 494 additions and 693 deletions

83
REQUEST_USAGE.md Normal file
View File

@@ -0,0 +1,83 @@
# Request 工具使用说明
## 概述
`src/utils/request.ts` 已经适配了后台生成的 API 代码格式,支持两种使用方式:
## 1. 标准方式(适配后台生成代码)
后台生成的代码使用 `request.get<ApiResult>` 格式,返回完整的 `ApiResult` 响应:
```typescript
// 后台生成的代码格式
export async function pageCmsNavigation(params: CmsNavigationParam) {
const res = await request.get<ApiResult<PageResult<CmsNavigation>>>(
'/cms/cms-navigation/page',
params
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
```
## 2. 便捷方式(自动提取数据)
如果你想要自动提取 `data` 字段,可以使用 `getData` 系列方法:
```typescript
import request from '@/utils/request';
// 自动提取 data 字段
const data = await request.getData<CmsNavigation[]>('/cms/cms-navigation');
// 等价于
const res = await request.get<ApiResult<CmsNavigation[]>>('/cms/cms-navigation');
const data = res.data;
```
## 可用方法
### 标准方法(返回完整 ApiResult
- `request.get<T>(url, params?, config?)`
- `request.post<T>(url, data?, config?)`
- `request.put<T>(url, data?, config?)`
- `request.del<T>(url, data?, config?)`
- `request.patch<T>(url, data?, config?)`
### 便捷方法(自动提取 data
- `request.getData<T>(url, params?, config?)`
- `request.postData<T>(url, data?, config?)`
- `request.putData<T>(url, data?, config?)`
- `request.delData<T>(url, data?, config?)`
## 配置选项
```typescript
interface RequestConfig {
url: string;
method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
data?: any;
header?: Record<string, string>;
timeout?: number;
retry?: number;
showLoading?: boolean;
showError?: boolean;
returnRaw?: boolean; // 内部使用,控制返回格式
}
```
## 错误处理
所有请求都会自动处理:
- 网络错误
- 超时错误
- 认证错误(自动清除登录信息并跳转)
- 业务错误(显示错误提示)
## 注意事项
1. **后台生成的代码无需修改**,直接使用 `request.get<ApiResult>` 格式
2. **新写的代码**可以选择使用 `getData` 系列方法来简化代码
3. 所有方法都支持自动重试、错误处理、认证等功能