# 文件职责 HTTP请求拦截器,为所有**API请求**提供统一的**认证**、**日志**和**错误处理**。 # 实现方式 使用 **axios拦截器机制**: - 创建配置好基础URL的axios实例 - 注册请求拦截器处理认证和请求头 - 注册响应拦截器处理日志和错误 - 通过EventEmitter处理token过期事件 # 实现思路 1. **请求拦截 - 认证注入**: - 根据系统模式(正常/应急)选择不同的token - 添加统一的请求头(Authorization、Language、Product、Source) - 记录详细的请求日志 2. **响应拦截 - 日志和错误处理**: - 记录所有响应的详细信息 - 识别业务错误(code !== '0x000000') - 捕获网络错误和HTTP错误 3. **Token过期处理**: - 检测特定错误码(0x000101) - 通过EventEmitter发送token过期事件 - 挂起当前请求,防止后续操作 # 边界 ## 输入边界 - Redux Store状态:用户信息、产品信息、系统模式 - API请求配置:url、method、data、params ## 输出边界 - 增强的axios实例(包含拦截器) - 事件发射:tokenExpired事件 - 控制台日志:请求和响应的详细信息 ## 职责边界 - ✅ 负责:请求拦截、响应拦截、认证注入、日志记录、错误标识 - ❌ 不负责:具体API调用、业务逻辑处理、UI展示、token刷新 # 涉及概念 - **axios**:HTTP客户端库 - **Interceptor Pattern**:拦截器模式 - **Request Interceptor**:请求拦截器 - **Response Interceptor**:响应拦截器 - **Bearer Token**:Bearer令牌认证 - **HTTP Headers**:HTTP请求头 - **Authorization**:授权认证 - **Redux Store**:状态管理容器 - **System Mode**:系统模式(正常/应急) - **EventEmitter**:事件发射器 - **Token Expiration**:令牌过期 - **Promise Suspension**:Promise挂起(阻止后续执行) - **Error Code**:错误码(十六进制格式) - **Logging**:日志记录