5 maneras de hacer peticiones HTTP en Node
Tiempo de lectura: 4 minutos
Hacer peticiones HTTP es una funcionalidad básica para los lenguajes modernos y una de las primeras cosas que muchos desarrolladores deben aprender para aclimatarse a nuevos entornos. Cuando se trata de Node.js hay una buena cantidad de soluciones a este problema construidos en ambos, en el lenguaje y por la comunidad. Vamos a echar un vistazo a algunos de los más populares.
Vamos a utilizar el API de la NASA Imagen Astronómica del Día como el API JSON con que estaremos interactuando en todos estos ejemplos, porque el espacio es la cosa más genial
Antes de continuar, asegúrese de que tiene la versiones más recientes de Node.js y npm instalados en su máquina.
HTTP – la Biblioteca Standard
El primero en nuestra lista de éxitos es el módulo predeterminado HTTP
de la biblioteca estándar. Con este módulo, se puede conectar y navegar sin tener que instalar dependencias externas. La desventaja es que no es muy fácil de usar en comparación con otras soluciones.
El siguiente código enviará una petición GET
a la API de la NASA e imprimirá la dirección URL de la imagen astronómica del día, así como una explicación
Muchas de las funcionalidades del módulo HTTP
, y del HTTPS
son de bastante bajo nivel. Usted está obligado a recibir datos de respuesta en pedazos o partes en lugar de limitarse a una función de respuesta que se ejecutaría tan pronto como todos los datos son recibidos. También es necesario analizar los datos de respuesta manualmente. Esto es bastante sencillo si se trata de formato JSON, pero sigue siendo un paso adicional
Otro problema es que este módulo no soporta HTTPS
de forma predeterminada, por lo que necesitamos requerir el módulo https
si la API que estamos utilizando se comunica a través de HTTPS
. Esto puede tomar un poco más de trabajo para obtener los datos que desea, pero es una gran utilidad si no desea agregar demasiadas dependencias a su código base o si quiere tener acceso a sus funcionalidades de bajo nivel.
Request
Request es un cliente HTTP simplificado comparable a la biblioteca Python de peticiones. Esta biblioteca es mucho más fácil de usar que el módulo http
predeterminado y ha sido considerado como la receta de éxito para la comunidad durante varios años.
Esta ha sido mi elección personal desde que he empezado a utilizar Node.js, y es ideal para obtener rápidamente las cosas. A diferencia del módulo http
, se tendrá que instalar ésta como una dependencia de npm.
Ejecute el siguiente comando en su terminal desde el directorio en que desea instalar su código:
Verá que necesita codificar mucho menos para realizar la misma tarea que hicimos anteriormente:
Request es una opción fantástica si lo que desea es una manera fácil de utilizar la biblioteca que maneja las peticiones HTTP en una manera sana. Si desea utilizar Promises, puede consultar la biblioteca de peticiones de Promises.
Axios
Axios es un cliente Promises para el navegador basado en HTTP, así como para node.js. El uso de Promises es una gran ventaja cuando se trata de código que requiere una cadena de eventos más complicado. Escribir código asíncrono puede resultar confuso, y Promises es una de varias soluciones a este problema. Es útil incluso en otros idiomas como el Swift.
Para instalar Axios desde npm, introduzca el siguiente comando en el terminal:
El siguiente código realizará la misma tarea de registrar la URL y de explicar la imagen de astronomía del día:
Axios incluso analiza las respuestas JSON por defecto. Muy conveniente! También se puede ver que el tratamiento de errores se realiza con .catch()
ya que estamos utilizando Promises ahora.
Puede incluso hacer múltiples solicitudes simultáneas con axios.all
si quería hacer algo como obtener la imagen astronómica de dos días diferentes a la vez:
Un código asíncrono puede convertirse fácilmente en algo sobre complicado y desagradable de manejar, y la forma de Axios resuelve este problema puede hacer su vida más fácil en el largo plazo.
SuperAgent
De manera similar a Axios, SuperAgent es otra biblioteca popular usada principalmente para hacer peticiones AJAX en el navegador, pero trabaja en Node.js también. Instale SuperAgent con el siguiente comando:
Lo que es bueno de SuperAgent es que tiene otras funciones útiles que se pueden encadenar a las peticiones tales como query()
para añadir parámetros a la solicitud. Hemos estado añadiendo simplemente de forma manual en la dirección URL en los ejemplos anteriores, pero notamos cómo SuperAgent le da una función para hacer esto:
Al igual que con Axios usted no tiene que analizar la respuesta JSON por si mismo, lo cual es genial
Got
Got es otra opción si quiere una biblioteca más ligera. También está disponible para su uso en Funciones Twilio.
Una vez más, instale Got con npm:
De manera similar a Axios, Got trabaja con Promises también. El siguiente código funcionará como lo hace con el resto de los ejemplos
Got es genial si quieres una biblioteca más pequeña que se siente menos “inflada” con algo así como Request..
Pensamientos Finales
Esto no cubre todas las soluciones, pero ahora puede ver cómo trabaja la funcionalidad básica en algunas de las bibliotecas HTTP más populares de Node. También hay bibliotecas, tales como nodo-fetch, que integra la funcionalidad de recuperación del navegador fetch
al servidor
Otros lenguajes tienen una variedad similar de bibliotecas para hacer frente a este problema. Prueba estos otros tutoriales en Swift, Python y Ruby. Además, echa un vistazo a nuestro sitio Node.js Quickstartsun para aplicar tus nuevas habilidades.
¿Cuáles son sus maneras favoritas para enviar peticiones HTTP? No dude en contactarnos para que me haga saber o aclarar sus dudas
- Email: Sagnew@twilio.com
- Twitter: @Sagnewshreds
- Github: Sagnew
- Twitch (código de streaming en vivo): Sagnewshreds
Publicaciones relacionadas
Recursos relacionados
Twilio Docs
Desde API hasta SDK y aplicaciones de muestra
Documentación de referencia de API, SDK, bibliotecas auxiliares, inicios rápidos y tutoriales para su idioma y plataforma.
Centro de Recursos
Los últimos libros electrónicos, informes de la industria y seminarios web
Aprenda de los expertos en participación del cliente para mejorar su propia comunicación.
Ahoy
Centro de la comunidad de desarrolladores de Twilio
Mejores prácticas, ejemplos de códigos e inspiración para crear comunicaciones y experiencias de participación digital.