Petición HTTP GET simple en Node.js con request

Node, JavaScript del lado del servidor, provee un modo para comunicarse a través de http: el módulo http. Sin embargo, este módulo es un poco largo de usar, así que se han creado varios módulos o paquetes y uno de ellos es request.

El módulo de request tiene otra envoltura llamada request-promise, el cual es como request pero usando promesas.

En fin, vamos a ver cómo hacer una petición GET HTTP usando Node y el módulo request. Será un ejemplo sencillo y básico pero que servirá para ejemplos más avanzados.

Instalar node y las dependencias

Primero debemos configurar e instalar Node con NPM, luego ejecutamos:

npm install --save request

Lo que instalará el módulo request, y finalmente lo siguiente para la envoltura:

npm install --save request-promise

Con eso podemos comenzar a trabajar.

Lo que vamos a consumir

Las peticiones GET funcionan para muchas cosas y sirven en muchos escenarios, pero vamos a enfocarnos en consumir un json con la API de JSONPlaceholder.

Vamos a consultar usuarios y luego decodificarlos con JSON para finalmente mostrarlos en la consola. Un ejemplo de respuesta es este:

Ejemplo de respuesta de la API de JsonPlaceholder

Ejemplo de respuesta de la API de JsonPlaceholder

Lo vamos a hacer pero con código de JavaScript.

Ahora sí, ejemplo de petición HTTP GET a servidor con JSON en Node.js

Aquí está el código y abajo lo explico:

Por cierto, la ruta es: https://jsonplaceholder.typicode.com/users

Se hace la petición pasándole a request un objeto con algunos ajustes (aquí la documentación). En este caso pasamos la uri, que es la ruta a la que se hará la petición, y también se pasa la opción de json en true para que automáticamente decodifique el JSON.

Cuando se reciben los usuarios, se iteran con forEach y listo, se imprimen sus datos.

Fue un ejemplo sencillo pero que muestra cómo consumir una API JSON con Node.

Probar ejemplo en línea

Prueba el ejemplo para consumir una API JSON con Node.JS aquí:

Te invito a ver más tutoriales de JavaScript y Node.