Axios 封装模式
如何把 Axios 封装成统一的 HTTP 客户端,隔离配置、拦截器、错误处理和业务 API。
#type / synthesis
#status / growing
#tech / network
#platform / browser
#resource / http
#resource / javascript
#package / axios
[!info] related notes
- 所属 MOC: HTTP 与前端网络请求
- 上位概念: Axios
- 前置概念: Axios 实例, Axios 拦截器, Axios 错误模型
- 相关实践: Axios 封装实践, 封装一个优雅的axios
Axios 封装模式
主题范围
这篇只讲“怎么把 Axios 包成一个稳定的业务层客户端”,不重复讲 API 本身。
一句话结论
推荐分层:实例 -> 拦截器 -> 错误归一化 -> 业务 API 模块。
核心结构
axios.create()
-> request interceptors
-> response interceptors
-> error normalization
-> domain api functions
常见封装目标
- 统一 baseURL 和 timeout
- 自动注入 token
- 统一处理 401 / 403 / 5xx
- 统一抽取 data
- 统一取消与重试策略
两种常见返回风格
Promise<T>+try/catchPromise<Result<T>>+ 显式判断
最短记忆方式
- 先实例化
- 再拦截
- 再归一化错误
- 最后暴露业务 API