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