Descripción general de cinco bibliotecas de desarrollo web HTTP

Una de las tareas más importantes que un programador debe resolver al desarrollar proyectos web es organizar el intercambio de datos entre el cliente y el servidor de dichos proyectos. Puede verse así: el usuario presiona un botón determinado en la página abierta en el navegador, el sistema responde con una solicitud al servidor, después de lo cual el servidor envía a la página los datos que ha solicitado. Para mostrar dichos datos en la página, sin volver a cargarlos, se procesa, después de lo cual la página se actualiza y el usuario recibe lo que necesita.



La tecnología AJAX es la piedra angular de dicha interacción del sistema, en cuyo marco utiliza una instancia de objeto XMLHttpRequest . Para facilitar a los programadores trabajar con AJAX y XMLHttpRequest , se han creado bibliotecas especializadas que proporcionan a los desarrolladores interfaces convenientes, eliminando la necesidad de utilizar mecanismos de bajo nivel.

El material, cuya traducción publicamos hoy, está dedicado al análisis de cinco herramientas populares para trabajar con HTTP: Axios, Request, Superagent, Fetch y Supertest.

Axios


La biblioteca Axios para ejecutar solicitudes HTTP se basa en promesas. Es adecuado para su uso en Node.js y aplicaciones de navegador. La biblioteca es compatible con todos los navegadores modernos, incluido IE8 +.

▍ Fortalezas


  • Funciona en el entorno Node.js y en los navegadores.
  • Apoya las promesas.
  • Le permite ejecutar y cancelar solicitudes.
  • Le permite configurar el tiempo de espera de respuesta.
  • Admite protección contra ataques XSRF.
  • Permite interceptar solicitudes y respuestas.
  • Admite la indicación del progreso de carga de datos.
  • Ampliamente utilizado en proyectos basados ​​en React y Vue.

▍ Debilidades


  • La biblioteca es bastante difícil de usar.

Superagente


La biblioteca Superagent , como Axios, es adecuada para Node.js y navegadores modernos. Proporciona al desarrollador una API simple y comprensible con la que es conveniente trabajar.

Para ejecutar una solicitud HTTP usando Superagent, simplemente llame al método de objeto de request apropiado:

 request   .get('')   .then(res => log(res))   .catch(err => log(err)) 

▍ Fortalezas


  • Admite complementos.
  • Configurable
  • Tiene una buena interfaz para realizar solicitudes HTTP.
  • Admite el encadenamiento de múltiples llamadas para completar consultas.
  • Funciona en el entorno Node.js y en los navegadores.
  • Admite visualización de progreso para cargar y descargar datos.
  • Admite mecanismo de codificación de transferencia fragmentada.
  • Admite devoluciones de llamada.
  • Se han desarrollado muchos complementos para esta biblioteca.

▍ Debilidades


  • Tiene un tipo de API que no cumple con ningún estándar.

Solicitud


La biblioteca de solicitudes , en comparación con las herramientas revisadas anteriormente, es una herramienta simplificada para ejecutar solicitudes HTTP. Al usar esta biblioteca, debe escribir menos código que cuando trabaja con otras bibliotecas. No usa promesas, pero si necesita esta característica, puede usar la biblioteca Request-Promise , que implementa un contenedor alrededor de la biblioteca Request y le permite trabajar con las promesas.

▍ Fortalezas


  • Una API que es fácil de usar.

▍ Debilidades


  • La biblioteca no usa promesas.

Buscar


Fetch no es una biblioteca, a diferencia de las otras herramientas cubiertas en esta revisión. Esta es una API de navegador estándar, una alternativa a XMLHttpRequest .

▍ Fortalezas


  • Flexibilidad y facilidad de uso.
  • El uso de promesas, que evita el "infierno de devoluciones de llamada".
  • Soporte por todos los navegadores modernos.
  • Siguiendo el enfoque de solicitud-respuesta.
  • Sintaxis simple y agradable.
  • Compatible con React Native.

▍ Debilidades


  • No funciona en un entorno de servidor.
  • No implementa algunas funciones disponibles en las bibliotecas HTTP, como cancelar una solicitud.
  • No contiene soporte incorporado para parámetros predeterminados, como modo de solicitud, encabezados, credenciales.

Supertest


La biblioteca Supertest se basa en la biblioteca Superagent. Está diseñado para probar servidores HTTP creados sobre la base de Node.js. Supertest brinda a los desarrolladores acceso a su propia API y la API de bajo nivel proporcionada por la biblioteca Superagent.

▍ Fortalezas


  • Tiene una API conveniente.
  • Simplifica la construcción de pruebas HTTP.
  • Se puede usar junto con bibliotecas para probar proyectos como Chai.js y Mocha .

▍ Debilidades


  • No funciona en navegadores.

Resumen


En este artículo, examinamos varias herramientas populares para trabajar con HTTP que son útiles para los desarrolladores de JS que crean aplicaciones utilizando tecnologías de navegador y plataformas Node.js. Al seleccionar una base para el subsistema HTTP de un proyecto, se recomienda que primero pruebe algunas herramientas que parezcan adecuadas y luego tome la decisión final.

Estimados lectores! ¿Qué bibliotecas HTTP usas?

Source: https://habr.com/ru/post/es432634/


All Articles