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