¿Quieres aprender a realizar peticiones GET en Node.js? Si es así, estás en el lugar correcto. En esta entrada de blog, te mostraré cómo usar el módulo http
integrado y la popular librería axios
para realizar peticiones GET en Node.js. También explicaré qué son las peticiones GET, por qué son importantes y cómo manejar los datos de respuesta. Al final de esta publicación, podrás realizar peticiones GET en Node.js como un profesional.
¿Qué es una petición GET?
Una petición GET es uno de los tipos más comunes de peticiones HTTP. HTTP significa Protocolo de Transferencia de Hipertexto, que es el protocolo estándar para la comunicación entre navegadores web y servidores web. Las peticiones HTTP son mensajes que los navegadores web envían a los servidores web para solicitar o enviar datos. Las respuestas HTTP son mensajes que los servidores web envían de vuelta a los navegadores web para entregar los datos solicitados o confirmar el envío.
Una petición GET es un tipo de petición HTTP que le pide al servidor web que envíe un recurso específico. Por ejemplo, cuando escribes una URL en tu navegador web, estás haciendo una petición GET al servidor web para que te envíe la página web asociada con esa URL. Una petición GET también puede incluir algunos parámetros de consulta, que son pares clave-valor que proporcionan información adicional o filtran el recurso solicitado. Por ejemplo, cuando buscas algo en Google, estás haciendo una petición GET al servidor web de Google con algunos parámetros de consulta que especifican tu término de búsqueda, idioma y otras opciones.
¿Por qué son importantes las peticiones GET?
Las peticiones GET son importantes porque son la forma principal de recuperar datos de los servidores web. Puedes usar peticiones GET para acceder a varios tipos de datos, como HTML, JSON, XML, imágenes, vídeos y más. También puedes usar peticiones GET para interactuar con las APIs web, que son interfaces que te permiten acceder a datos y servicios de otras aplicaciones web. Por ejemplo, puedes usar peticiones GET para obtener información meteorológica de la API de OpenWeatherMap, obtener información de películas de la API de IMDb u obtener imágenes de perros de la API de Dog.
Las peticiones GET también son importantes porque son fáciles de usar y probar. Puedes realizar peticiones GET usando cualquier navegador web, sin herramientas o librerías especiales. También puedes usar herramientas como Postman o Apidog para realizar y probar peticiones GET con diferentes parámetros y encabezados. También puedes inspeccionar los datos de respuesta y los encabezados usando las herramientas de desarrollador del navegador o la interfaz de la herramienta.
¿Qué es NodeJs?
Node.js es un entorno de ejecución de JavaScript que te permite ejecutar código JavaScript fuera de un navegador web. Node.js se basa en el motor de JavaScript V8 de Google Chrome y se utiliza para construir aplicaciones web, especialmente aquellas que requieren un uso intensivo de datos y en tiempo real. Node.js también tiene una gran biblioteca de módulos y paquetes que puedes usar para agregar funcionalidad a tus proyectos. Algunos de los beneficios de Node.js son:
- Es rápido y escalable, gracias a su naturaleza asíncrona y basada en eventos.
- Es multiplataforma y de código abierto, lo que significa que puedes ejecutarlo en varios sistemas operativos y contribuir a su desarrollo.
- Es consistente y unificado, ya que puedes usar el mismo lenguaje tanto para el front-end como para el back-end de tu aplicación web.

¿Cómo realizar una petición GET en Node.js usando el módulo http
?
Node.js es un entorno de ejecución de JavaScript que te permite ejecutar código JavaScript fuera del navegador web. Node.js se usa a menudo para crear servidores web, aplicaciones web y APIs web. Node.js también proporciona un módulo http
integrado que te permite realizar peticiones y respuestas HTTP.
Para realizar una petición GET en Node.js usando el módulo http
, debes seguir estos pasos:
- Importa el módulo
http
usando la funciónrequire
. - Crea un objeto
options
que contenga la información sobre la petición GET, como el nombre de host, el puerto, la ruta y los encabezados. - Usa el método
http.get
para realizar la petición GET, pasando el objetooptions
como el primer argumento y una función de callback como el segundo argumento. La función de callback se ejecutará cuando se reciba la respuesta y tendrá un objetoresponse
como su parámetro. - Usa el objeto
response
para manejar los datos de respuesta y los encabezados. El objetoresponse
es una instancia de la clasehttp.IncomingMessage
, que implementa la interfazReadableStream
. Esto significa que puedes usar el objetoresponse
como un flujo de datos y escuchar eventos comodata
,end
yerror
. También puedes usar la propiedadresponse.statusCode
para obtener el código de estado de la respuesta y la propiedadresponse.headers
para obtener los encabezados de la respuesta. - Usa el método
response.on
para registrar listeners de eventos para el objetoresponse
. Por ejemplo, puedes usar el métodoresponse.on('data', callback)
para escuchar el eventodata
, que se emitirá cuando se reciba un fragmento de datos. La función de callback tendrá un objetochunk
como su parámetro, que es un buffer de datos. Puedes usar el métodochunk.toString()
para convertir el buffer a una cadena y adjuntarlo a una variable para almacenar todos los datos de respuesta. También puedes usar el métodoresponse.on('end', callback)
para escuchar el eventoend
, que se emitirá cuando la respuesta esté completa. La función de callback no tendrá ningún parámetro y puedes usarla para realizar cualquier acción final, como registrar o analizar los datos de respuesta. También puedes usar el métodoresponse.on('error', callback)
para escuchar el eventoerror
, que se emitirá cuando ocurra un error durante la respuesta. La función de callback tendrá un objetoerror
como su parámetro y puedes usarlo para manejar el error, como registrarlo o lanzarlo.
Aquí tienes un ejemplo de cómo realizar una petición GET en Node.js usando el módulo http
:
// Importa el módulo http
const http = require('http');
// Crea un objeto options
const options = {
hostname: 'api.openweathermap.org',
port: 80,
path: '/data/2.5/weather?q=Los%20Angeles&appid=YOUR_API_KEY',
headers: {
'User-Agent': 'Node.js'
}
};
// Realiza la petición GET
http.get(options, (response) => {
// Inicializa una variable para almacenar los datos de respuesta
let data = '';
// Escucha el evento data
response.on('data', (chunk) => {
// Adjunta el fragmento a la variable data
data += chunk.toString();
});
// Escucha el evento end
response.on('end', () => {
// Registra el código de estado y los encabezados
console.log(`Status code: ${response.statusCode}`);
console.log(`Headers: ${JSON.stringify(response.headers)}`);
// Analiza los datos como JSON
const weather = JSON.parse(data);
// Registra la información meteorológica
console.log(`City: ${weather.name}`);
console.log(`Temperature: ${weather.main.temp}`);
console.log(`Description: ${weather.weather[0].description}`);
});
// Escucha el evento error
response.on('error', (error) => {
// Lanza el error
throw error;
});
});
¿Cómo realizar una petición GET en Node.js usando la librería axios
?
El módulo http
es un módulo de bajo nivel que proporciona funcionalidad básica para realizar peticiones y respuestas HTTP. Sin embargo, si quieres usar un módulo de nivel superior y más fácil de usar, puedes usar la librería axios
. Axios es una librería popular y potente que te permite realizar peticiones HTTP y manejar respuestas usando promesas y sintaxis async/await. Axios también admite características como interceptores, transformadores, tiempos de espera, tokens de cancelación y más.
Para realizar una petición GET en Node.js usando la librería axios
, debes seguir estos pasos:
- Instala la librería
axios
usando el comandonpm
:npm install axios
. - Importa la librería
axios
usando la funciónrequire
. - Usa el método
axios.get
para realizar la petición GET, pasando la URL del recurso como el primer argumento y un objetoconfig
opcional como el segundo argumento. El objetoconfig
puede contener información sobre la petición GET, como los encabezados, los parámetros, el tiempo de espera y más. El métodoaxios.get
devolverá una promesa, que se resolverá en un objetoresponse
o se rechazará en un objetoerror
. - Usa el método
then
para manejar la promesa resuelta, pasando una función de callback como el primer argumento. La función de callback tendrá un objetoresponse
como su parámetro, que contiene los datos de respuesta, el estado, los encabezados y más. Puedes usar la propiedadresponse.data
para acceder a los datos de respuesta y la propiedadresponse.status
para acceder al código de estado de la respuesta. También puedes usar el métodocatch
para manejar la promesa rechazada, pasando una función de callback como el primer argumento. La función de callback tendrá un objetoerror
como su parámetro, que contiene el mensaje de error, el código, la petición y la respuesta. Puedes usar la propiedaderror.response
para acceder al objeto de respuesta y la propiedaderror.request
para acceder al objeto de petición. - Alternativamente, puedes usar la sintaxis
async/await
para realizar la petición GET y manejar la respuesta. Para hacer esto, debes usar la palabra claveasync
antes de la función que contiene la petición GET y la palabra claveawait
antes del métodoaxios.get
. Esto te permitirá escribir código asíncrono de manera síncrona y asignar el objetoresponse
a una variable. Luego puedes usar el bloquetry/catch
para manejar cualquier error que pueda ocurrir durante la petición GET.
Aquí tienes un ejemplo de cómo realizar una petición GET en Node.js usando la librería axios
:
// Importa la librería axios
const axios = require('axios');
// Realiza la petición GET usando el método then
axios.get('http://api.openweathermap.org/data/2.5/weather?q=Los%20Angeles&appid=YOUR_API_KEY', {
headers: {
'User-Agent': 'Node.js'
}
}).then((response) => {
// Registra el código de estado y los encabezados
console.log(`Status code: ${response.status}`);
console.log(`Headers: ${JSON.stringify(response.headers)}`);
// Registra la información meteorológica
console.log(`City: ${response.data.name}`);
console.log(`Temperature: ${response.data.main.temp}`);
console.log(`Description: ${response.data.weather[0].description}`);
}).catch((error) => {
// Registra el mensaje de error y el código
console.log(`Error message: ${error.message}`);
console.log(`Error code: ${error.code}`);
// Registra el estado de la respuesta y los datos si están disponibles
if (error.response) {
console.log(`Response status: ${error.response.status}`);
console.log(`Response data: ${JSON.stringify(error.response.data)}`);
}
// Registra el método de la petición y la ruta si están disponibles
if (error.request) {
console.log(`Request method: ${error.request.method}`);
console.log(`Request path: ${error.request.path}`);
}
});
// Realiza la petición GET usando la sintaxis async/await
async function getWeather() {
try {
// Espera la petición GET y asigna el objeto de respuesta a una variable
const response = await axios.get('http://api.openweathermap.org/data/2.5/weather?q=Los%20Angeles&appid=YOUR_API_KEY', {
headers: {
'User-Agent': 'Node.js'
}
});
// Registra el código de estado y los encabezados
console.log(`Status code: ${response.status}`);
console.log(`Headers: ${JSON.stringify(response.headers)}`);
// Registra la información meteorológica
console.log(`City: ${response.data.name}`);
console.log(`Temperature: ${response.data.main.temp}`);
console.log(`Description: ${response.data.weather[0].description}`);
} catch (error) {
// Registra el mensaje de error y el código
console.log(`Error message: ${error.message}`);
console.log(`Error code: ${error.code}`);
// Registra el estado de la respuesta y los datos si están disponibles
if (error.response) {
console.log(`Response status: ${error.response.status}`);
console.log(`Response data: ${JSON.stringify(error.response.data)}`);
}
// Registra el método de la petición y la ruta si están disponibles
if (error.request) {
console.log(`Request method: ${error.request.method}`);
console.log(`Request path: ${error.request.path}`);
}
}
}
// Llama a la función getWeather
getWeather();
¿Cómo manejar los datos de respuesta en Node.js?
Una vez que realizas una petición GET en Node.js y recibes la respuesta, es posible que desees hacer algo con los datos de respuesta. Por ejemplo, es posible que desees mostrar los datos en la consola, guardar los datos en un archivo, analizar los datos como JSON o XML, o usar los datos para algún otro propósito.
Dependiendo del tipo y formato de los datos de respuesta, es posible que debas usar diferentes métodos y módulos para manejar los datos. Aquí hay algunos escenarios comunes y cómo manejarlos:
- Si los datos de respuesta son una cadena, simplemente puedes usar el método
console.log
para mostrar los datos en la consola, o el métodofs.writeFile
para guardar los datos en un archivo. El módulofs
es un módulo integrado que te permite trabajar con el sistema de archivos en Node.js. Puedes importar el módulofs
usando la funciónrequire
y usar el métodofs.writeFile
para escribir datos en un archivo, pasando el nombre del archivo, los datos y una función de callback como argumentos. La función de callback tendrá un objetoerror
como su parámetro y puedes usarlo para manejar cualquier error que pueda ocurrir durante el proceso de escritura del archivo. - Si los datos de respuesta son un buffer, puedes usar el método
buffer.toString
para convertir el buffer a una cadena y luego usar los mismos métodos que antes para mostrar o guardar los datos. Un buffer es un tipo de datos binarios que representa una secuencia de bytes. Los buffers se usan a menudo para manejar datos binarios, como imágenes, vídeos o archivos comprimidos. Puedes usar el métodobuffer.toString
para convertir un buffer a una cadena, pasando un argumento de codificación opcional para especificar la codificación de caracteres de la cadena. La codificación predeterminada esutf8
, que es la codificación más común para los datos de texto. - Si los datos de respuesta son JSON, puedes usar el método
JSON.parse
para analizar los datos como un objeto de JavaScript y luego usar las propiedades y métodos del objeto para acceder y manipular los datos. JSON significa Notación de Objetos de JavaScript, que es un formato estándar para intercambiar y almacenar datos. Los datos JSON son una cadena que sigue una sintaxis específica, que consiste en pares clave-valor encerrados entre llaves y matrices encerradas entre corchetes. Puedes usar el métodoJSON.parse
para analizar una cadena JSON como un objeto de JavaScript, pasando la cadena JSON como argumento. El método devolverá un objeto de JavaScript que puedes usar como cualquier otro objeto. - Si los datos de respuesta son XML, puedes usar la librería
xml2js
para analizar los datos como un objeto de JavaScript y luego usar las propiedades y métodos del objeto para acceder y manipular los datos. XML significa Lenguaje de Marcado Extensible, que es otro formato estándar para intercambiar y almacenar datos. Los datos XML son una cadena que sigue una sintaxis específica, que consiste en elementos encerrados entre etiquetas, atributos encerrados entre comillas y contenido de texto. La libreríaxml2js
es una librería de terceros que te permite convertir datos XML a objetos de JavaScript y viceversa. Puedes instalar la libreríaxml2js
usando el comandonpm
:npm install xml2js
. Puedes importar la libreríaxml2js
usando la funciónrequire
y usar el métodoxml2js.parseString
para analizar una cadena XML como un objeto de JavaScript, pasando la cadena XML y una función de callback como argumentos. La función de callback tendrá un objetoerror
y un objetoresult
como sus parámetros y puedes usarlos para manejar cualquier error o acceder al objeto analizado.
¿Cómo probar la petición HTTP GET de NodeJs usando Apidog?
Para probar la petición HTTP Get usando Apidog, debes seguir estos sencillos pasos:
- Abre Apidog y haz clic en el botón "New Request" para crear una nueva petición.

2. Selecciona "GET" como el método de la petición.

3. Introduce la URL del punto final de la API

Luego haz clic en el botón "Send" para enviar la petición a la API.

Como puedes ver, Apidog te muestra la URL, los parámetros, los encabezados y el cuerpo de la petición, y el estado, los encabezados y el cuerpo de la respuesta. También puedes ver el tiempo de respuesta, el tamaño y el formato de la petición y la respuesta, y compararlos con diferentes APIs web.
Conclusión
En esta entrada de blog, te he mostrado cómo realizar peticiones GET en Node.js usando el módulo http
y la librería axios
. También te he mostrado cómo manejar los datos de respuesta en diferentes formatos y escenarios. Espero que hayas aprendido algo útil y hayas disfrutado leyendo esta publicación.
¡Gracias por leer y feliz codificación!