128 changed files with 495 additions and 694 deletions
@ -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. 所有方法都支持自动重试、错误处理、认证等功能 |
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue