Axios — очень популярный вариант для выполнения HTTP-запросов в JavaScript. Узнайте, как сделать это эффективно, с помощью этого подробного руководства.
Axios — это библиотека JavaScript, которая предоставляет простой API для отправки HTTP-запросов из кода JavaScript на стороне клиента или кода Node.js на стороне сервера. Axios построен на API-интерфейсе Promise JavaScript, что делает асинхронный код более удобным в сопровождении.
Начало работы с Axios
Вы можете использовать Axios в своем приложении, используя сеть доставки контента (CDN) или установив его в свой проект.
Чтобы использовать Axios непосредственно в HTML, скопируйте приведенную ниже ссылку CDN и вставьте ее в раздел заголовка вашего HTML-файла:
<сценарийисточник=" https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js">сценарий>
При таком подходе вы можете использовать Axios и его HTTP-методы в теле ваших HTML-скриптов. Аксиос также может использовать REST API в такой среде, как React.
Чтобы использовать Axios в проекте Node.js, установите его в каталог проекта с помощью диспетчера пакетов npm или yarn:
npm установить аксиомы
# или
пряжа добавить аксиомы
После установки вы можете начать использовать Axios в своем проекте JavaScript:
константа аксиос = требовать(аксиос);
В этом руководстве вы будете работать с бесплатными JSONPlaceholder API. Хотя этот API имеет набор ресурсов, вы будете использовать только /comments и /posts конечные точки. Конечные точки — это определенные URL-адреса, к которым можно получить доступ для извлечения данных или управления ими.
Выполнение запросов GET с помощью Axios
Есть несколько способов сделать запрос GET с помощью Axios. Однако синтаксис обычно зависит от предпочтений.
Один из способов сделать GET-запрос — использовать аксиос() метод с объектом, который определяет метод запроса как получать и URL-адрес для отправки запроса.
Например:
константа аксиос = требовать("аксиос");
аксиос({
метод: "получать",
URL: " https://jsonplaceholder.typicode.com/comments",
})
.затем((разрешение) => {
консоль.log(рез.данные);
})
.ловить((ошибаться) => {
консоль.ошибка (ошибка);
});
Этот пример создает обещание с использованием модели асинхронного программирования путем объединения .затем() и .ловить() методы. Обещание регистрирует ответ на консоль, когда запрос выполнен успешно, и регистрирует сообщение об ошибке, если запрос завершается неудачно.
Axios также предоставляет более простой способ выполнения запросов GET, который устраняет необходимость передачи объекта путем объединения запросов. .получать() метод к аксиомы пример.
Например:
аксиомы
.получать(" https://jsonplaceholder.typicode.com/comments")
.затем((разрешение) => {
консоль.log(рез.данные);
})
.ловить((ошибаться) => {
консоль.ошибка (ошибка);
});
Выполнение запросов POST с помощью Axios
Выполнение запроса POST с помощью Axios похоже на выполнение запроса GET. С помощью этого запроса вы можете отправить данные на сервер.
Приведенный ниже фрагмент кода является примером использования Axios. .почта() метод:
аксиомы
.почта(" https://jsonplaceholder.typicode.com/comments", {
имя: "Джексон Смит",
электронная почта: "[email protected]",
тело: «Это произведение искусства».,
})
.затем((разрешение) => {
консоль.log(рез.данные);
})
.ловить((ошибаться) => {
консоль.ошибка (ошибка);
});
Код отправляет запрос POST к API JSONPlaceholder для создания нового комментария. axios.post метод отправляет данные в /comments конечная точка.
Данные, отправляемые в запросе, представляют собой объект с имя, электронная почта, и тело свойство. Если запрос выполнен успешно, затем метод записывает данные ответа на консоль. И если есть ошибка, то ловить метод записывает ошибку в консоль.
Выполнение запросов PUT/PATCH с помощью Axios
Вы можете использовать запрос PUT или PATCH для обновления существующего ресурса на сервере. В то время как PUT заменяет весь ресурс, PATCH обновляет только указанные поля.
Чтобы сделать запрос PUT или PATCH с помощью Axios, вам нужно использовать .помещать() или .пластырь() методы соответственно.
Вот пример того, как использовать эти методы для обновления электронная почта свойство комментария с идентификатором 100:
константа аксиос = требовать("аксиос");
аксиомы
.получать(" https://jsonplaceholder.typicode.com/comments/100")
.затем((разрешение) => {
консоль.log(res.data.email);
})
.ловить((ошибаться) => {
консоль.ошибка (ошибка);
});// Выход:
// '[email protected]'аксиомы
.пластырь(" https://jsonplaceholder.typicode.com/comments/100", {
электронная почта: "[email protected]",
})
.затем((разрешение) => {
консоль.log(res.data.email);
})
.ловить((ошибаться) => {
консоль.ошибка (ошибка);
});
// Выход:
// '[email protected]',
Эта программа сначала делает запрос GET к конечной точке " https://jsonplaceholder.typicode.com/comments/100". Затем он регистрирует электронная почта свойство комментария с идентификатором 100 к консоли. Мы делаем запрос GET, чтобы вы могли увидеть, что изменилось после выполнения запроса PATCH.
Второй запрос — это запрос PATCH к той же конечной точке. Этот код обновляет адрес электронной почты комментария на [email protected].
Выполнение запросов DELETE с помощью Axios
Вы можете использовать УДАЛИТЬ запрос на удаление ресурса на сервере.
Возьмите следующий пример того, как использовать .удалить() метод удаления ресурса с сервера:
аксиомы
.удалить(" https://jsonplaceholder.typicode.com/comments/10")
.затем((разрешение) => {
консоль.log(рез.данные);
})
.ловить((ошибаться) => {
консоль.ошибка (ошибка);
});
//Output:
// {}
Записав в консоль пустой объект, приведенный выше код показывает, что он удалил комментарий с идентификатором 10.
Выполнение одновременных запросов с помощью Axios
Вы можете получать данные с нескольких конечных точек одновременно, используя Axios. Для этого необходимо использовать .все() метод. Этот метод принимает массив запросов в качестве своего параметра и разрешается только тогда, когда вы получаете все ответы.
В следующем примере .все() метод извлекает данные из двух конечных точек одновременно:
аксиомы
.все([
аксиос.получить(" https://jsonplaceholder.typicode.com/comments? _лимит=2"),
аксиос.получить(" https://jsonplaceholder.typicode.com/posts? _лимит=2"),
])
.затем(
axios.spread((комментарии, посты) => {
консоль.log(комментарии.данные);
консоль.log(сообщения.данные);
})
)
.ловить((ошибаться) =>консоль.ошибка (ошибка));
Приведенный выше блок кода отправляет запросы одновременно, а затем передает ответы в .затем() метод. Аксиос .распространение() метод разделяет ответы и присваивает каждому ответу свою переменную.
Наконец, консоль регистрирует данные свойство двух ответов: комментариев и сообщений.
Перехват запросов с помощью Axios
Иногда вам может понадобиться перехватить запрос, прежде чем он попадет на сервер. Вы можете использовать Axios' перехватчики.request.use() метод перехвата запросов.
В следующем примере метод записывает в консоль тип запроса для каждого сделанного запроса:
axios.interceptors.request.use(
(конфиг) => {
консоль.бревно(`${config.method} запрос сделан`);
возвращаться конфигурация;
},
(ошибка) => {
возвращатьсяОбещать.отклонить (ошибка);
}
);
аксиомы
.получать(" https://jsonplaceholder.typicode.com/comments? _лимит=2")
.затем((разрешение) =>консоль.log(рез.данные))
.ловить((ошибаться) =>консоль.ошибка (ошибка));
Программа определяет перехватчик Axios с помощью axios.interceptors.request.use метод. Этот метод занимает конфигурация и ошибка объекты в качестве аргументов. конфигурация объект содержит информацию о запросе, включая метод запроса (config.метод) и URL запроса (config.url).
Функция-перехватчик возвращает конфигурация объект, позволяя запросу выполняться в обычном режиме. В случае ошибки функция возвращает отклоненный Обещать объект.
Наконец, программа делает запрос на проверку перехватчика. Консоль зарегистрирует тип сделанного запроса, в данном случае запрос GET.
Axios — это больше
Вы узнали, как делать и перехватывать запросы в своих проектах с помощью Axios. Многие другие функции, такие как преобразование запросов и использование экземпляров Axios, доступны для изучения вам как разработчику JavaScript. Axios остается предпочтительным вариантом для выполнения HTTP-запросов в ваших приложениях JavaScript. Однако Fetch API — еще один хороший вариант, который вы можете изучить.