refactor(api): 更新 API调用以使用新的请求工具- 将所有 API 调用中的 request-legacy 替换为 request
- 优化部分 API 调用的参数传递方式 - 统一导入 ApiResult 和 PageResult 类型的路径
This commit is contained in:
83
REQUEST_USAGE.md
Normal file
83
REQUEST_USAGE.md
Normal 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. 所有方法都支持自动重试、错误处理、认证等功能
|
||||
Reference in New Issue
Block a user