多实例场景实战(不同后端服务)
在大型项目中,通常需要调用多个后端服务,例如用户服务、订单服务和支付服务。使用 Axios 多实例可以为每个服务配置独立的 baseURL、请求头和拦截器,方便管理。
1. 创建多个 Axios 实例
import axios from "axios";
// 用户服务实例
export const userApi = axios.create({
baseURL: "https://user.example.com/api",
timeout: 5000,
});
// 订单服务实例
export const orderApi = axios.create({
baseURL: "https://order.example.com/api",
timeout: 7000,
});
// 支付服务实例
export const paymentApi = axios.create({
baseURL: "https://payment.example.com/api",
timeout: 10000,
});
2. 为不同实例添加拦截器
// 用户服务请求拦截器
userApi.interceptors.request.use((config) => {
config.headers["Authorization"] = `Bearer ${localStorage.getItem(
"user_token"
)}`;
return config;
});
// 订单服务响应拦截器
orderApi.interceptors.response.use(
(response) => response.data,
(error) => Promise.reject(error)
);
3. 使用多实例发送请求
// 获取用户信息
userApi.get("/profile").then((data) => console.log("用户信息:", data));
// 创建订单
orderApi
.post("/create", { itemId: 123, quantity: 2 })
.then((data) => console.log("订单创建成功:", data));
// 支付请求
paymentApi
.post("/pay", { orderId: 456 })
.then((data) => console.log("支付成功:", data));
4. 优势
- 独立配置:每个实例可以有不同 baseURL、timeout、headers;
- 灵活管理:便于区分不同后端服务的请求逻辑;
- 提高可维护性:减少全局配置冲突,便于扩展和调试。
💡 小提示:在多服务项目中使用 Axios 多实例可以让请求逻辑更加清晰、独立,提高项目的可维护性和开发效率。
相关内容
- 缓存与重复请求优化 本章节介绍如何在前端项目中使用 Axios 优化请求缓存与防止重复请求,包括浏览器缓存、内存缓存、请求去重策略、拦截器结合缓存、缓存过期处理等方法,帮助提高接口...
- 前端容错与兜底策略 本章节讲解如何在前端使用 Axios 实现容错与兜底策略,包括请求失败处理、默认数据返回、全局错误提示、降级方案、备用接口调用等方法,确保应用在网络异常或接口异...
- 接口统一管理与类型定义 本章节介绍如何在前端项目中使用 Axios 统一管理接口请求,包括接口模块化、统一封装、请求类型定义、TypeScript 类型约束、接口文档维护及调用规范化。...
- 取消请求(CancelToken 与 AbortController) 本章节讲解如何在 Axios 中取消请求,包括使用 CancelToken 和 AbortController 两种方式,适用于用户快速切换页面或重复请求时,防...
- 同时发送多个请求(axios.all / axios.spread) 本章节讲解如何使用 Axios 同时发送多个请求,包括 axios.all 和 axios.spread 的使用方法,帮助前端项目高效处理并发请求,提高数据获取...
- 防止重复请求的策略 本章节讲解如何在 Axios 中防止重复请求,包括使用请求标识、拦截器和节流/防抖机制,避免用户多次触发同一接口导致的冗余请求,提高前端性能和接口稳定性。