Какая самая надежная библиотека HTTP-запросов JS? Axios, Request, Superagent, Fetch или Supertest

HTTP JavaScript
Какая самая надежная библиотека HTTP-запросов JS? Axios, Request, Superagent, Fetch или Supertest

Автор оригинала: Чидуме Ннамди

Переводчик: Джоти, UC International R&D


Спереди написано: Добро пожаловать в официальный аккаунт «UC International Technology», мы предоставим вам качественные технические статьи, связанные с клиентом, сервером, алгоритмом, тестированием, данными, интерфейсом и т. д., не ограничиваясь оригинальностью и перевод.

Взаимодействие между клиентом и сервером очень важно в веб-разработке и облегчает высокодинамичное клиентское приложение. Пользователь отправляет запрос на сервер, нажимая кнопку в интерактивном режиме, сервер извлекает данные и возвращает их, страницу не нужно перезагружать и напрямую использует возвращенные данные для повторного рендеринга ее части/всего содержимого или работы на данные.

Технический принцип этого является AJAX, который реализуется через экземпляр XMLHTTPREQUEST. Чтобы улучшить опыт использования AJAX и XMLHTTPREQUEST, сообщество разработало некоторые библиотеки, которые напрямую выпускают HTTP-запросы, не занимаясь AJAX и XMLHTTTREQUEST.

В этой статье вы познакомитесь с пятью самыми популярными библиотеками HTTP и их реализацией. Я надеюсь помочь вам сэкономить немного времени.

Совет. Избегайте дублирования кода, делясь общими компонентами синхронизации с Bit. Превратите код той же функции в общий компонент, вы сможете использовать его где угодно, и сборка будет быстрее ~ попробуйте прямо сейчас.


Axios

HTTP-клиент на основе Promise для браузеров и Node.js

Axios — это HTTP-библиотека на основе Promise для выполнения HTTP-запросов в Node.js и браузерах, поддерживающая все современные браузеры, даже IE8+!

преимущество

  • Поддерживает как Node.js, так и браузеры.

  • Обещанная поддержка API

  • Может настраивать или отменять запросы

  • Время ожидания ответа может быть установлено

  • Поддерживает защиту от атак с подделкой межсайтовых запросов (XSRF).

  • Может перехватывать невыполненные запросы или ответы

  • Поддержка отображения прогресса загрузки

  • Широко используется в проектах React и Vue.

    недостаток

    • более проблематично в использовании


    Superagent

    Модифицированный Ajax — используется с HTTP-клиентом Node.js.

    Superagent — это облегченный прогрессивный AJAX API на основе Promise, идеально подходящий для отправки HTTP-запросов и получения ответов сервера. Как и Axios, он работает как на Node, так и во всех современных браузерах.

    Сделать HTTP-запрос с помощью Superagent так же просто, как вызвать метод объекта запроса:

    преимущество

    • У него есть экосистема плагинов, и дополнительные функции могут быть реализованы путем создания плагинов.

    • Настраиваемый

    • Интерфейс отправки HTTP-запросов удобен

    • Вы можете добавлять методы в цепочку запросов

    • Работает с браузерами и узлом

    • Поддержка отображения загрузки и загрузки

    • Поддержка кодирования фрагментированной передачи

    • Поддержка обратных вызовов в старом стиле

    • Процветающая экосистема плагинов, которая поддерживает множество общих функций.

    недостаток

    • Его API не соответствует никаким стандартам


    Request

    🏊🏾 Упрощенный клиент HTTP-запросов

    Запрос предоставляет упрощенный способ создания HTTP-запросов. Вы можете делать HTTP-запросы с меньшим количеством кода, чем другие HTTP-библиотеки. Это не основано на промисах, но если вам нужны промисы, вы можете импортироватьrequest-promiseБиблиотека, которая оборачивает запрос как промис и возвращает его.

    преимущество

    • Простой и удобный API

    недостаток

    • Не основано на обещаниях


    Fetch

    Fetch — это API, поставляемый с браузером для отправки запросов и предназначенный для замены XMLHttpRequest.

    преимущество

    • Гибкий и простой в использовании

    • Избегайте ада обратных вызовов с промисами

    • Поддерживает все современные браузеры

    • Соблюдайте схему запрос-ответ

    • Простой и понятный синтаксис

    • Реагировать на нативную поддержку

    недостаток

    • Использование на стороне сервера не поддерживается

    • Отсутствие изюминок библиотеки разработки, таких как отмена запросов

    • Нет встроенных значений по умолчанию, таких как режим запроса, заголовки запроса, учетные данные запроса.


    Supertest

    Драйвер суперагента с плавным API для тестирования HTTP-серверов Node.js.

    Супертест используется для тестирования HTTP-серверов Node.js. Библиотека поддерживается SuperAgent, который сочетает в себе собственный API с базовым API SuperAgent для обеспечения лаконичного тестового интерфейса HTTP.

    преимущество

    • Свободный API

    • Простое HTTP-утверждение

    • Можно смешивать с различными наборами тестов, такими как Chai.js и Mocha.


    недостаток

    • Браузер не поддерживается


    Суммировать

    Проанализировав популярные HTTP-библиотеки, вы можете спросить: «Какую выбрать?»

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

    Если у вас есть какие-либо вопросы или вы чувствуете, что вам нужно добавить, исправить или удалить какие-либо вопросы, пожалуйста, не стесняйтесь комментировать, писать по электронной почте или отправлять мне личное сообщение. Спасибо за прочтение! 👏


    Исходный адрес: https://blog.bitsrc.io/comparing-http-request-libraries-for-2019-7bedb1089c83?gi=89b097d4bfd1


    Хорошая рекомендация статьи:

    Стремление к максимальной производительности JavaScript: предложение AST для бинарных файлов TC39

    Как бы выглядела ваша карьера, если бы на рынке был только один браузер?



    «UC International Technology» стремится делиться с вами высококачественными техническими статьями.

    Добро пожаловать, чтобы подписаться на наш официальный аккаунт и поделиться статьей с друзьями