# Module Spec:api-system(src/api + axios request 封装) module: id: api-system name: API 层(src/api 域拆分 + src/utils/request.ts) type: core entrypoints: - src/api/ - src/utils/request.ts public_api: concept: - "src/api/.ts:按业务域拆分 API 函数" - "src/utils/request.ts:axios 实例 + 拦截器 + 统一错误处理 + token 注入" dependency_closure: runtime: - "axios(instance + interceptors)" - "qs(x-www-form-urlencoded 序列化)" - "store/user:token 注入、401/402 时 resetAll / refresh token" - "plugin-vab:gp.$baseMessage / gp.$baseLoading(loading 与错误提示)" - "plugin-errorlog:needErrorLog/addErrorLog(请求异常入库)" - "router:401/403 跳转" - "config:baseURL/requestTimeout/contentType/successCode/statusName/messageName/debounce 等" - "api/refreshToken:402 刷新 token 重试队列" acceptance: - "正常接口返回 code=200 时返回 data" - "401 跳转 /login 且 resetAll 执行" - "402 触发 refreshToken 并重放队列请求" pitfalls: - "request.ts 强依赖 gp(全局注入)与 user store;抽取到新项目需明确入口安装顺序" - "successCode/statusName/messageName 等与后端协议强耦合,迁移时先在规格声明差异"