نمونه سازی از Axios

ایجاد یک نمونه

می توانید نمونه جدیدی از axios را با یک پیکربندی سفارشی نمونه سازی و ایجاد کنید.

axios.create([config])
const instance = axios.create({
  baseURL: 'https://some-domain.com/api/',
  timeout: 1000,
  headers: {'X-Custom-Header': 'foobar'}
});

توابه این نمونه

توابع مربوط به نمونه ساخته شده در زیر ذکر شده است. پیکربندی مشخص شده با پیکربندی پیش فرض نمونه ادغام می شود.

axios#request(config)
axios#get(url[, config])
axios#delete(url[, config])
axios#head(url[, config])
axios#options(url[, config])
axios#post(url[, data[, config]])
axios#put(url[, data[, config]])
axios#patch(url[, data[, config]])
axios#getUri([config])

فراخوانی مستقیم نمونه با شیء پیکربندی

علاوه بر متدهای کمکی مانند instance.get() یا instance.post()، می‌توانید یک نمونه Axios را مستقیماً با یک شیء پیکربندی فراخوانی کنید. این کار دقیقاً مانند axios(config) عمل می‌کند و زمانی مفید است که بخواهید یک درخواست را با پیکربندی اولیه دوباره ارسال کنید.

const instance = axios.create({ baseURL: '/api' });

// مشابه axios(config) عمل می‌کند
instance({
  url: '/users',
  method: 'get'
});

این روش امکان پیاده‌سازی منطق retry تمیز را فراهم می‌کند؛ مثلاً هنگام مدیریت خطاهای احراز هویت:

instance.interceptors.response.use(undefined, async (error) => {
  if (error.response?.status === 401) {
    await refreshToken();
    return instance(error.config); // ارسال مجدد درخواست اصلی
  }

  throw error;
});