# API 全局配置说明文档 ## 概述 本项目实现了统一的API接口全局配置系统,用于管理所有API请求的基础URL、请求头、超时设置等配置参数。这样可以在一处修改配置,所有API请求都会自动应用这些配置。 ## 配置文件结构 配置文件位于 `utils/config.js`,包含以下主要配置项: - `baseURL`: API基础URL,所有相对路径的请求都会自动添加此前缀 - `clientId`: 客户端ID,用于API认证 - `grantType`: 授权类型 - `timeout`: 请求超时时间(毫秒) - `headers`: 默认请求头 - 各模块API路径配置(login、book等) ## 请求工具 请求工具位于 `utils/request.js`,封装了uni.request方法,提供了以下功能: - 自动添加baseURL - 自动添加请求头(包括token) - 统一的错误处理 - 请求超时控制 - 加载提示控制 - 响应拦截(401自动跳转登录页) ## API模块 API模块位于 `service/api.js`,按功能模块组织API请求,包括: - `loginApi`: 登录相关API - `bookApi`: 书籍相关API - `userApi`: 用户相关API - `warehouseApi`: 仓库相关API ## 使用示例 ### 1. 导入API模块 ```javascript import { loginApi, bookApi } from '@/service/api.js'; ``` ### 2. 调用API方法 ```javascript // 登录 loginApi.wxLogin(loginData) .then(response => { console.log('登录成功', response); }) .catch(error => { console.error('登录失败', error); }); // 获取书籍记录 async function getBooks(phoneNumber) { try { const response = await bookApi.getBookRecords(phoneNumber); return response.data; } catch (error) { console.error('获取失败', error); return []; } } ``` ### 3. 添加新的API 在 `service/api.js` 中添加新的API方法: ```javascript export const newModuleApi = { getMethod: (params) => { return request({ url: '/path/to/api', method: 'GET', data: params, loading: true // 是否显示加载提示 }); }, postMethod: (data) => { return request({ url: '/path/to/api', method: 'POST', data, loading: true }); } }; ``` ## 注意事项 1. 所有API请求都应该通过API模块进行,不要直接调用uni.request 2. 如需修改基础URL或其他全局配置,只需修改utils/config.js文件 3. 错误处理已在request.js中统一处理,业务代码中可以专注于正常流程 4. 对于特殊需求,可以在调用API时传入自定义header覆盖默认配置