Назад в блог

Использование HTTP-клиента Axios в React-приложении: руководство

Использование HTTP-клиента Axios в React-приложении: руководство

Многие веб-приложения на определенном этапе разработки сталкиваются с необходимостью взаимодействия с REST API. Для React-приложений мы можем использовать Axios, легковесный HTTP-клиент, основанный на $http сервисе в Angular.js v1.x. Его возможности похожи на встроенный в JavaScript Fetch API.

Axios основан на промисах, что дает нам возможность использовать встроенные в JavaScript async и await для написания более читаемого синхронного кода. Он также поддерживает перехват и отмену запросов. Кроме того, в нем есть встроенная защита на стороне клиента от подделки межсайтовых запросов.

В этом руководстве мы покажем, как использовать Axios для доступа к популярному JSON Placeholder API в демонстрационном приложении React. Вы можете узнать больше о формате JSON в JavaScript из этого руководства.

Предварительные требования

Для выполнения шагов, описанных в этом руководстве, вам понадобятся следующие компоненты:

Шаг 1. Установка Axios в проект React

Axios доступен напрямую как npm модуль. Посмотрите Axios на npm. Все, что нам нужно, — это создать проект React и установить пакет Axios.

Следующая команда npx запустит create-react-app для создания нового проекта React. Имя проекта будет использоваться для создания отдельного каталога для проекта. Здесь мы назвали проект react-axios-demo. Запустите команду:

npx create-react-app

Перейдите в только что созданный каталог проекта:

Затем вызовите команду npm install для установки Axios. Если версия не указана, то npm автоматически загрузит и установит последнюю версию Axios:

npm install axios

Наш проект готов к использованию Axios! Пришло время применить его возможности на практике.

Шаг 2. Создание GET-запроса

На этом шаге мы покажем создание нового компонента, который использует Axios для отправки GET-запроса.

Сначала создайте новый компонент PersonList, который будет отображать список имен. Создайте отдельный каталог для хранения компонента:

mkdir -pv

Затем создайте файл PersonList.js :

Откройте файл в текстовом редакторе. Мы используем Visual Studio Code для удобства и читаемости. Введите следующий код JavaScript:

 

this.state.persons

Здесь:

  • Мы импортировали React и Axios, чтобы использовать их оба в компоненте.

  • Мы подключаемся к хуку жизненного цикла componentDidMount и отправляем GET-запрос.

Вы можете использовать axios.get(<url>) конечной точки API для получения промиса (возвращает объект ответа). Объект ответа содержит нужные данные. Затем мы присваиваем их значению person. Мы также можем собрать дополнительную информацию о запросе, например код состояния в res.status или дополнительную информацию из res.request.

Затем нам нужно добавить наш компонент в основной App.js файл. Добавьте следующий код:

 

import PersonList

Настройка для этого шага завершена. Теперь вы можете запустить приложение и протестировать его в своем любимом браузере. Запустите сервер разработки:

Axios React code screenshot 1

Как мы видим, результат показывает список имен людей в случайном порядке:

React app

Шаг 3. Создание POST-запроса

В этом разделе мы покажем использование Axios для выполнения другого метода HTTP-запроса, который называется POST. Чтобы продемонстрировать это, наша цель — создать новый компонент в нашем проекте React под названием PersonAdd.

Создайте файл PersonAdd.js:

Axios React code screenshot 2

Затем откройте файл в текстовом редакторе и введите следующий код:

Axios React code screenshot 3

В этом коде мы принимаем ввод пользователя и отправляем (POST) содержимое в API. Внутри handleSubmit функции мы предотвращаем действие по умолчанию для формы и обновляем состояние введенными пользователем данными. При использовании POST возвращается тот же объект ответа. Мы можем использовать этот объект внутри вызова then. Чтобы выполнить запрос POST, мы перехватываем ввод пользователя и добавляем его вместе с запросом POST. Это дает нам ответ. Мы записываем ответ в лог с помощью console.log. Он должен показать ввод user в форме.

Затем добавьте компонент в App.js. Полный код должен выглядеть следующим образом:

Axios React code screenshot 4

Теперь время протестировать изменения. Запустите сервер разработки:

Проверьте изменения в веб-браузере:

Axios React code screenshot 5

Шаг 4. Создание DELETE-запроса

В этом разделе мы продемонстрируем удаление элементов из API с помощью axios.delete и использованием URL-адреса в качестве параметра. Для демонстрации создайте компонент PersonRemove. Создайте файл PersonRemove.js в каталоге src/components:

Axios React code screenshot 6

После этого откройте файл в текстовом редакторе и добавьте следующий код:

Axios React code screenshot 7

Здесь объект res предоставляет информацию о запросе. Затем мы можем использовать console.log после отправки формы.

Затем импортируйте компонент в App.js:

Axios React code screenshot 8

Время снова протестировать наш код. Запустите сервер:

Вы должны увидеть новую форму, которая принимает имя пользователя и удаляет его из списка:

npm start

Шаг 5. Использование базового экземпляра в Axios

Теперь мы будем работать с базовым экземпляром Axios. Здесь мы можем определить URL-адрес и другие элементы конфигурации. Чтобы реализовать это, создайте отдельный файл api.js:

Axios React code screenshot 9

Откройте его в текстовом редакторе и введите следующий код:

export default axios.create

После настройки мы можем использовать его внутри компонента PersonRemove . Вот как будет выглядеть код:

Axios React code screenshot 10

Здесь http://jsonplaceholder.typicode.com/ установлен в качестве базового URL-адреса. Теперь нам больше не нужно использовать полный URL-адрес каждый раз при обращении к эндпоинту API.

Шаг 6. Реализация async и await

В этом разделе мы рассмотрим, как реализовать async и await для работы с промисами. Ключевое слово await разрешает promise и возвращает значение. Мы можем присвоить это значение переменной для более удобного использования.

Вот как будет выглядеть обновленный код PersonRemove.js:

Implement async and await

Здесь мы заменили .then(). Как только promise будет разрешен, мы сохраняем значение в переменной response.

Заключение

В этом руководстве мы рассмотрели различные примеры использования Axios для работы с REST API. Примеры кода демонстрируют создание HTTP-запросов и обработку ответов.

Хотите узнать больше о JavaScript? Ознакомьтесь с другими нашими руководствами для начинающих по различным концепциям и возможностям JavaScript, например, дата и время, работа со строками, классы, и объекты.

Приятного программирования!

author

Hark Labs

Автор · CloudSigma

Preslav Dobrev — креативный дизайнер в CloudSigma, сосредоточенный на формировании последовательного корпоративного образа с помощью традиционных и инновационных маркетинговых каналов. Он умело сочетает художественное видение со стратегическим маркетингом, создавая убедительные истории бренда.

Комментарии

Комментариев пока нет. Будьте первым.