Статья Легко выполнять асинхронные HTTP-запросы с помощью Axios была первоначально опубликована в среду, 4 января 2023 г., в Блоге технических разработчиков. Для получения новейшего актуального контента, только что из печи, посетите https://techdevblog.io и подпишитесь на нашу рассылку!

Axios — это популярная библиотека JavaScript для создания HTTP-запросов. Он основан на промисах и упрощает работу с асинхронными запросами в ваших приложениях. В этом руководстве мы рассмотрим некоторые из лучших практик использования Axios для выполнения HTTP-запросов.

Установка Аксиос

Чтобы использовать Axios в своем проекте, вам сначала необходимо установить его. Вы можете сделать это, используя либо npm, либо пряжу.

нпм

Чтобы установить Axios с помощью npm, выполните в терминале следующую команду:

npm install axios

пряжа

Чтобы установить Axios с помощью пряжи, выполните в терминале следующую команду:

yarn add axios

Делать запросы

После того, как вы установили Axios, вы можете начать делать HTTP-запросы. Вот пример простого GET-запроса:

axios.get('/api/users')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.log(error);
  });

В этом примере мы делаем запрос GET к конечной точке /api/users. Если запрос выполнен успешно, данные ответа будут записаны в консоль. Если есть ошибка, она будет обнаружена и зарегистрирована в консоли.

Вы также можете делать POST-запросы с помощью Axios. Вот пример POST-запроса:

axios.post('/api/users', {
  name: 'John Smith',
  email: '[email protected]'
})
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.log(error);
  });

В этом примере мы отправляем запрос POST к конечной точке /api/users с полезными данными, содержащими имя и адрес электронной почты.

Настройка запросов

Вы можете настроить свои запросы Axios, передав дополнительные параметры в качестве объекта. Например, вы можете передать заголовки, параметры и другие параметры.

axios.get('/api/users', {
  headers: {
    'Authorization': 'Bearer abc123'
  },
  params: {
    page: 2
  }
})
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.log(error);
  });

В этом примере мы передаем заголовок Authorization с токеном носителя и параметр page со значением 2.

Работа с обещаниями

Axios использует промисы для обработки асинхронных запросов. Это означает, что вы можете использовать методы then и catch для обработки случаев успеха и ошибок.

axios.get('/api/users')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.log(error);
  });

В этом примере мы делаем запрос GET к конечной точке /api/users. Если запрос выполнен успешно, данные ответа будут записаны в консоль. Если есть ошибка, она также будет зарегистрирована в консоли.

Обработка ошибок

Важно правильно обрабатывать ошибки в запросах Axios. Вы можете сделать это с помощью метода catch, как показано в предыдущих примерах. Вы также можете использовать метод catch для обработки определенных ошибок. Например, вы можете захотеть обработать ошибку 404 иначе, чем ошибку 500.

axios.get('/api/users')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    if (error.response) {
      // The request was made and the server responded with a status code
      // that falls out of the range of 2xx
      console.log(error.response.data);
      console.log(error.response.status);
      console.log(error.response.headers);
    } else if (error.request) {
      // The request was made but no response was received
      // `error.request` is an instance of XMLHttpRequest in the browser and an instance of
      // http.ClientRequest in node.js
      console.log(error.request);
    } else {
      // Something happened in setting up the request that triggered an Error
      console.log('Error', error.message);
    }
    console.log(error.config);
  });

В этом примере мы используем объект error.response для регистрации данных, кода состояния и заголовков ответа. Мы также регистрируем объект error.request, который является сделанным запросом. Наконец, мы регистрируем объект error.config, который содержит конфигурацию, которая использовалась для выполнения запроса.

Настройка параметров по умолчанию

Вы можете установить параметры по умолчанию для всех ваших запросов Axios, создав экземпляр библиотеки Axios с параметрами по умолчанию.

const axios = require('axios');

const instance = axios.create({
  baseURL: 'https://api.example.com',
  timeout: 1000,
  headers: {
    'Authorization': 'Bearer abc123'
  }
});

instance.get('/users')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.log(error);
  });

В этом примере мы создаем экземпляр Axios с базовым URL-адресом https://api.example.com, временем ожидания 1000 миллисекунд и заголовком Authorization с токеном-носителем. К любым запросам, сделанным с помощью этого экземпляра, будут применены эти параметры по умолчанию.

Отмена запросов

Вы можете отменить запрос Axios, используя объект CancelToken. Это полезно, если вам нужно отменить запрос, который занимает слишком много времени, или если вам больше не нужен ответ на запрос.

const CancelToken = axios.CancelToken;
const source = CancelToken.source();

axios.get('/api/users', {
  cancelToken: source.token
})
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    if (axios.isCancel(error)) {
      console.log('Request cancelled', error.message);
    } else {
      console.log(error);
    }
  });

// cancel the request (the message parameter is optional)
source.cancel('Operation cancelled by the user.');

В этом примере мы создаем объект CancelToken и объект source. Затем мы передаем source.token в параметр cancelToken запроса Axios. Чтобы отменить запрос, мы вызываем метод cancel для объекта source. Метод isCancel используется для проверки того, является ли ошибка ошибкой отмены.

Использование Axios с Async/Await

Вы можете использовать Axios с async/await, чтобы сделать ваш код более читабельным и с ним было проще работать. Вот пример асинхронной функции, которая делает запрос Axios:

async function getUsers() {
  try {
    const response = await axios.get('/api/users');
    console.log(response.data);
  } catch (error) {
    console.log(error);
  }
}

getUsers();

В этом примере мы используем ключевое слово await для ожидания разрешения запроса Axios перед записью данных ответа в консоль. Если есть ошибка, она будет обнаружена и зарегистрирована в консоли.

Заключение

В этом руководстве мы рассмотрели некоторые из лучших практик использования Axios для выполнения HTTP-запросов. Мы рассмотрели, как установить Axios, делать запросы, настраивать запросы, обрабатывать ошибки, устанавливать параметры по умолчанию, отменять запросы и использовать async/await. Обладая этими навыками, вы должны быть на пути к эффективному использованию Axios в своих проектах.

Статья Легко выполнять асинхронные HTTP-запросы с помощью Axios была первоначально опубликована в среду, 4 января 2023 г., в Блоге технических разработчиков. Для получения новейшего актуального контента, только что из печи, посетите https://techdevblog.io и подпишитесь на нашу рассылку!