«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Аксиос

Аксиос

Опубликовано 6 августа 2024 г.
Просматривать:254

Axios

Прочитайте код медленно и следуйте потоку информации и формату информации по мере необходимости по мере ее изменения

Обзор

Axios — это популярная библиотека JavaScript, используемая для выполнения HTTP-запросов как из браузера, так и из Node.js. Это проект с открытым исходным кодом, предназначенный для упрощения процесса отправки асинхронных HTTP-запросов к конечным точкам REST и выполнения операций CRUD (создание, чтение, обновление, удаление).

Создатель

Axios был создан Мэттом Забриски. Проект поддерживается сообществом и доступен на GitHub.

Бенефициары

Axios полезен для:

  • Внешние разработчики: для выполнения HTTP-запросов из веб-приложений.
  • Вернальные разработчики: для интеграции HTTP-запросов в приложения Node.js.
  • Разработчики полного стека: для обработки HTTP-запросов как на стороне клиента, так и на стороне сервера.

Преимущества

  1. На основе обещаний: упрощает работу с асинхронными запросами и ответами.
  2. Перехватчики: позволяет изменять запросы или ответы до их обработки.
  3. Автоматическое преобразование данных JSON: упрощает обработку данных JSON.
  4. Защита CSRF: помогает защититься от подделки межсайтовых запросов.
  5. Преобразование запросов и ответов: пользовательское преобразование запросов и ответов.
  6. Обработка ошибок: упрощенная обработка ошибок по сравнению с другими методами.
  7. Широкая поддержка браузеров: работает во всех современных браузерах и Node.js.

Применение

Где он используется

  • Веб-приложения: для связи с серверными службами.
  • Приложения Node.js: для отправки HTTP-запросов к другим API или службам.
  • Мобильные приложения: как часть таких фреймворков, как React Native.

Где это терпит неудачу

  1. Тяжелые приложения: возможно, не лучший вариант для передачи очень больших данных из-за потребления памяти.
  2. Ограничения браузера: подпадают под ограничения политики одного и того же происхождения, если CORS не обрабатывается должным образом.
  3. Размер зависимости: дополнительная зависимость, которой нужно управлять, что может стать проблемой для минималистичных проектов.

Почему это используется

  • Простота использования: простой API для выполнения HTTP-запросов.
  • Гибкость: легко настраивается и расширяется.
  • Поддержка сообщества: широкое распространение и обширная поддержка сообщества.

Почему это не будет использоваться

  • Размер библиотеки: затраты на добавление еще одной зависимости.
  • Альтернативы: предпочтение Fetch API или других библиотек, таких как запрос или суперагент.

Как это используется

Монтаж

npm install axios

Основное использование

const axios = require('axios');

// Performing a GET request
axios.get('https://api.example.com/data')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error('Error fetching data:', error);
  });

Подробное использование с комментариями

const axios = require('axios');

// Create an instance of axios with default settings
const instance = axios.create({
  baseURL: 'https://api.example.com',
  timeout: 1000,
  headers: { 'X-Custom-Header': 'foobar' }
});

// Interceptor to log request details
instance.interceptors.request.use(request => {
  console.log('Starting Request', request);
  return request;
});

// Interceptor to log response details
instance.interceptors.response.use(response => {
  console.log('Response:', response);
  return response;
});

// Making a POST request
instance.post('/user', {
  firstName: 'Fred',
  lastName: 'Flintstone'
})
  .then(response => {
    console.log('User created:', response.data);
  })
  .catch(error => {
    console.error('Error creating user:', error);
  });

Примеры неправильного использования

  1. Игнорирование обработки ошибок: Неправильная обработка ошибок может привести к сбоям в работе приложения.
axios.get('https://api.example.com/data')
  .then(response => {
    console.log(response.data);
  });
// Error handling should not be omitted
  1. Блокирующий код с синхронными запросами: Axios не поддерживает синхронные запросы, поэтому использование его таким образом, что ожидание синхронного поведения является неверным.

Методы

Методы экземпляра

  • аксиос(конфигурация)
  • axios(url[, config])

Методы запроса

  • axios.request(конфигурация)
  • 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.all(итерируемый)
  • axios.spread(обратный вызов)

Создание экземпляров

  • axios.create([config])

Перехватчики

  • axios.interceptors.request.use(onFulfilled[, onRejected[, options]])
  • axios.interceptors.response.use(onFulfilled[, onRejected[, options]])

Конфигурация по умолчанию

  • axios.defaults

Отмена

  • аксиос.Отмена
  • axios.CancelToken
  • axios.isCancel

Заключение

Axios — это надежная и простая в использовании библиотека для выполнения HTTP-запросов в приложениях JavaScript. Он предоставляет мощный API с такими функциями, как перехват запросов и ответов, автоматическое преобразование JSON и архитектура на основе обещаний. Однако важно понимать его ограничения и использовать его соответствующим образом, чтобы избежать потенциальных ошибок.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/l_thomas_7c618d0460a87887/axios-ndn?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить их.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3