daShangDao_miniProgram/service/README.md
2025-11-24 10:25:20 +08:00

100 lines
2.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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覆盖默认配置