100 lines
2.5 KiB
Markdown
100 lines
2.5 KiB
Markdown
# 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覆盖默认配置 |