Apidog

Plataforma de desarrollo de API colaborativa todo en uno

Diseño de API

Documentación de API

Depuración de API

Simulación de API

Prueba automatizada de API

Cómo hacer una solicitud GET en Node.js: Una guía para principiantes

Aprende a hacer peticiones GET en Node.js con el módulo http y axios. Aprende a manejar datos de respuesta en varios formatos.

Daniel Costa

Daniel Costa

Updated on April 15, 2025

¿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.
NodeJs Website

¿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:

  1. Importa el módulo http usando la función require.
  2. 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.
  3. Usa el método http.get para realizar la petición GET, pasando el objeto options 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 objeto response como su parámetro.
  4. Usa el objeto response para manejar los datos de respuesta y los encabezados. El objeto response es una instancia de la clase http.IncomingMessage, que implementa la interfaz ReadableStream. Esto significa que puedes usar el objeto response como un flujo de datos y escuchar eventos como data, end y error. También puedes usar la propiedad response.statusCode para obtener el código de estado de la respuesta y la propiedad response.headers para obtener los encabezados de la respuesta.
  5. Usa el método response.on para registrar listeners de eventos para el objeto response. Por ejemplo, puedes usar el método response.on('data', callback) para escuchar el evento data, que se emitirá cuando se reciba un fragmento de datos. La función de callback tendrá un objeto chunk como su parámetro, que es un buffer de datos. Puedes usar el método chunk.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étodo response.on('end', callback) para escuchar el evento end, 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étodo response.on('error', callback) para escuchar el evento error, que se emitirá cuando ocurra un error durante la respuesta. La función de callback tendrá un objeto error 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:

  1. Instala la librería axios usando el comando npm: npm install axios.
  2. Importa la librería axios usando la función require.
  3. Usa el método axios.get para realizar la petición GET, pasando la URL del recurso como el primer argumento y un objeto config opcional como el segundo argumento. El objeto config puede contener información sobre la petición GET, como los encabezados, los parámetros, el tiempo de espera y más. El método axios.get devolverá una promesa, que se resolverá en un objeto response o se rechazará en un objeto error.
  4. 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 objeto response como su parámetro, que contiene los datos de respuesta, el estado, los encabezados y más. Puedes usar la propiedad response.data para acceder a los datos de respuesta y la propiedad response.status para acceder al código de estado de la respuesta. También puedes usar el método catch para manejar la promesa rechazada, pasando una función de callback como el primer argumento. La función de callback tendrá un objeto error como su parámetro, que contiene el mensaje de error, el código, la petición y la respuesta. Puedes usar la propiedad error.response para acceder al objeto de respuesta y la propiedad error.request para acceder al objeto de petición.
  5. Alternativamente, puedes usar la sintaxis async/await para realizar la petición GET y manejar la respuesta. Para hacer esto, debes usar la palabra clave async antes de la función que contiene la petición GET y la palabra clave await antes del método axios.get. Esto te permitirá escribir código asíncrono de manera síncrona y asignar el objeto response a una variable. Luego puedes usar el bloque try/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étodo fs.writeFile para guardar los datos en un archivo. El módulo fs es un módulo integrado que te permite trabajar con el sistema de archivos en Node.js. Puedes importar el módulo fs usando la función require y usar el método fs.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 objeto error 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étodo buffer.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 es utf8, 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étodo JSON.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ía xml2js es una librería de terceros que te permite convertir datos XML a objetos de JavaScript y viceversa. Puedes instalar la librería xml2js usando el comando npm: npm install xml2js. Puedes importar la librería xml2js usando la función require y usar el método xml2js.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 objeto error y un objeto result 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:

  1. Abre Apidog y haz clic en el botón "New Request" para crear una nueva petición.
Select new request

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

Select get method

3. Introduce la URL del punto final de la API

Enter the URL op the API

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

Send the request and analyse the answer

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!

Cómo usar Lovable AI (Alternativa a Cursor para desarrolladores web)Tutoriales

Cómo usar Lovable AI (Alternativa a Cursor para desarrolladores web)

Aprende a crear cualquier web con Lovable en esta guía completa. Descubre procesos paso a paso, funciones innovadoras e integra herramientas gratuitas como Apidog para gestión API.

Daniel Costa

April 15, 2025

Cómo usar n8n con servidores MCPTutoriales

Cómo usar n8n con servidores MCP

Automatiza flujos con n8n y servidores MCP para IA. Guía técnica: configuración, APIs, nodo "MCP Server Trigger" y Apidog para pruebas.

Daniel Costa

April 14, 2025

Cómo añadir claves API personalizadas a Cursor: Una guía completaTutoriales

Cómo añadir claves API personalizadas a Cursor: Una guía completa

Este tutorial te guiará para configurar y gestionar claves API personalizadas en Cursor (OpenAI, Anthropic, Google y Azure).

Daniel Costa

April 11, 2025