axios的二次封装-即开即用

167 阅读1分钟

项目中的一个小业务点,使用 Axios 库创建的 HTTP 客户端实例。话不多说,直接先上代码。

封装代码

// 引入 Axios
import axios from 'axios';

// 创建一个 Axios 实例
const instance = axios.create({
  baseURL: 'https://api.example.com', // 设置基准URL
  timeout: 5000, // 设置超时时间
});

// 添加请求拦截器
instance.interceptors.request.use(
  config => {
    // 在发送请求之前做些什么,比如添加 token
    config.headers.Authorization = 'Bearer token';
    return config;
  },
  error => {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 添加响应拦截器
instance.interceptors.response.use(
  response => {
    // 对响应数据做点什么
    return response.data;
  },
  error => {
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);

// 封装 GET 请求
export const get = (url, params) => {
  return instance.get(url, { params });
};

// 封装 POST 请求
export const post = (url, data) => {
  return instance.post(url, data);
};

export default instance

主要功能

  1. 引入 Axios:导入 Axios 库以便进行 HTTP 请求。

  2. 创建 Axios 实例

    • 设置基础 URL (baseURL) 为 https://api.example.com
    • 设置请求超时时间为 5000 毫秒。
  3. 请求拦截器

    • 在发送请求之前,自动为请求添加 Authorization 头部,包含 Bearer token。
    • 如果请求发生错误,返回一个拒绝的 Promise。
  4. 响应拦截器

    • 对于成功的响应,直接返回响应数据。
    • 如果响应发生错误,返回一个拒绝的 Promise。
  5. 封装 GET 和 POST 请求

    • 提供 get 和 post 函数,简化对 Axios 实例的调用,分别用于发送 GET 和 POST 请求。