Рубрики
Без рубрики

HTTP-запросы с использованием Axios

Axios – это очень популярная библиотека JavaScript, которую вы можете использовать для выполнения HTTP-запросов, которая работает в как браузер, так и Node.js платформы

  • Введение в Axios
  • Видеоурок
  • Установка
  • API-интерфейс Аксиомы
  • ПОЛУЧАТЬ запросы
  • Добавьте параметры для получения запросов
  • ОТПРАВЛЯТЬ запросы /ОГЛАВЛЕНИЕ

Введение в Axios

Axios – это очень популярная библиотека JavaScript, которую вы можете использовать для выполнения HTTP-запросов, которая работает как в браузере, так и Node.js платформы.

Он поддерживает все современные браузеры, включая поддержку IE8 и выше.

Он основан на обещаниях, и это позволяет нам писать асинхронный/ожидающий код для очень легкого выполнения запросов XHR.

Использование Axios имеет немало преимуществ по сравнению с собственным API выборки:

  • поддерживает старые браузеры (для выборки требуется полизаполнение)
  • есть способ прервать запрос
  • есть способ установить время ожидания ответа
  • имеет встроенную защиту CSRF
  • поддерживает прогресс загрузки
  • выполняет автоматическое JSON преобразование данных
  • работает в Node.js

Видеоурок

Посмотрите это видео, где я создаю экспресс-сервер, который предлагает конечную точку ПУБЛИКАЦИИ, и я делаю запрос Axios к нему для публикации данных:

Установка

Аксиомы могут быть установлены для использования в Node.js использование npm:

npm install axios

В браузере вы можете включить его на свою страницу с помощью unpkg.com:

Помните, что вызовы API должны обеспечивать доступ к CORS внутри браузера, в противном случае запрос не будет выполнен.

API-интерфейс Аксиомы

Вы можете запустить HTTP-запрос с оси объект:

axios({
  url: 'https://dog.ceo/api/breeds/list/all',
  method: 'get'
})

Это возвращает обещание. Вы можете использовать async/await для разрешения этого обещания объекту ответа:

;(async () => {
  const response = await axios({
    url: 'https://dog.ceo/api/breeds/list/all',
    method: 'get'
  })

  console.log(response)
})()

Для удобства вы, как правило, будете использовать следующие методы

  • axios.получить()
  • аксиос.пост()

Для старичков, как в jQuery, вы бы использовали $.get () и $.опубликовать () вместо $.ajax ()

Они предлагают более простой синтаксис. Например:

;(async () => {
  const response = await axios.get('https://dog.ceo/api/breeds/list/all')
  console.log(response)
})()

Axios предлагает методы для всех HTTP-глаголов, которые менее популярны, но все еще используются:

  • аксиос.удалить()
  • axios.положить()
  • аксиос.патч()
  • axios.параметры()

и метод для получения HTTP-заголовков запроса, отбрасывая тело, axis.head() .

ПОЛУЧАТЬ запросы

Этот Node.js пример запрашивает Dog API для получения списка всех пород собак, используя axios.get() , и подсчитывает их:

const axios = require('axios')

const getBreeds = async () => {
  try {
    return await axios.get('https://dog.ceo/api/breeds/list/all')
  } catch (error) {
    console.error(error)
  }
}

const countBreeds = async () => {
  const breeds = await getBreeds()

  if (breeds.data.message) {
    console.log(`Got ${Object.entries(breeds.data.message).length} breeds`)
  }
}

countBreeds()

Если вы не хотите использовать async/await, вы можете использовать синтаксис обещаний:

const axios = require('axios')

const getBreeds = () => {
  try {
    return axios.get('https://dog.ceo/api/breeds/list/all')
  } catch (error) {
    console.error(error)
  }
}

const countBreeds = async () => {
  const breeds = getBreeds()
    .then(response => {
      if (response.data.message) {
        console.log(
          `Got ${Object.entries(response.data.message).length} breeds`
        )
      }
    })
    .catch(error => {
      console.log(error)
    })
}

countBreeds()

Добавьте параметры для получения запросов

Ответ GET может содержать параметры в URL-адресе, например: https://site.com/?name=Flavio .

С помощью Axios вы можете выполнить это, используя этот URL-адрес:

axios.get('https://site.com/?name=Flavio')

или вы можете использовать свойство параметры в параметрах:

axios.get('https://site.com/', {
  params: {
    name: 'Flavio'
  }
})

ОТПРАВЛЯТЬ запросы

Выполнение запроса POST аналогично выполнению запроса GET, но вместо axios.get , вы используете axios.post :

axios.post('https://site.com/')

Объект, содержащий параметры POST, является вторым аргументом:

axios.post('https://site.com/', {
  name: 'Flavio'
})

Оригинал: “https://flaviocopes.com/axios/”