2.5 KiB
2.5 KiB
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: 登录相关APIbookApi: 书籍相关APIuserApi: 用户相关APIwarehouseApi: 仓库相关API
使用示例
1. 导入API模块
import { loginApi, bookApi } from '@/service/api.js';
2. 调用API方法
// 登录
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方法:
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
});
}
};
注意事项
- 所有API请求都应该通过API模块进行,不要直接调用uni.request
- 如需修改基础URL或其他全局配置,只需修改utils/config.js文件
- 错误处理已在request.js中统一处理,业务代码中可以专注于正常流程
- 对于特殊需求,可以在调用API时传入自定义header覆盖默认配置