¿Cómo hacer requests HTTP en Node.js?

En el mundo de la API REST, realizar una solicitud HTTP es la funcionalidad central de la tecnología moderna. Muchos desarrolladores lo aprenden cuando aterrizan en un nuevo entorno. Se pueden usar varias bibliotecas de código abierto, incluidos los módulos HTTP y HTTPS integrados de NodeJS, para realizar requests de red desde NodeJS.

Hay muchos enfoques para crear diferentes tipos de requests de red. Aquí, discutiremos 4 enfoques diferentes de ellos. 

  1. Uso del módulo AXIOS
  2. Uso de SuperAgente
  3. Usando el módulo Node-Fetch
  4. Usando el módulo HTTP

Aquí, enviaremos la solicitud a la API https://jsonplaceholder.typicode.com/ y mostraremos los datos de la respuesta. Aquí están todas nuestras API REST.

Método

API REST

Detalle

OBTENER /publicaciones Listado de todos los recursos
OBTENER /publicaciones/<id> Obtener un recurso
CORREO /publicaciones Creando un recurso
PONER /publicaciones/<id> Actualización de un recurso

Configure un nuevo proyecto: Para crear un nuevo proyecto, ingrese el siguiente comando en su terminal.

mkdir test
npm init -y

Estructura del proyecto: Tendrá el siguiente aspecto.  

directorio de proyectos

Enfoque 1:  en este enfoque, enviaremos una solicitud para obtener un recurso utilizando la biblioteca AXIOS . Axios es un cliente HTTP base prometedor para NodeJS. Usted también puede usarlo en el navegador. Usar promesa es una gran ventaja cuando se trata de código asincrónico como solicitud de red. 

Módulo de instalación:

npm i axios

Cree index.js y escriba el siguiente código.

index.js

const axios = require('axios')
  
// Make request
axios.get('https://jsonplaceholder.typicode.com/posts/1')
  
  // Show response data
  .then(res => console.log(res.data))
  .catch(err => console.log(err))

Paso para ejecutar la aplicación: Abra la terminal y escriba el siguiente comando.

node index.js

Producción:

respuesta de solicitud de axios

Enfoque 2: Aquí haremos una solicitud para crear un recurso utilizando la biblioteca SuperAgent . Esta es otra biblioteca popular para realizar requests de red en el navegador, pero también funciona en Node.js. 

Módulo de instalación:

npm i superagent

Vuelva a escribir index.js con el siguiente código.

index.js

const superagent = require('superagent');
  
// promise with async/await
(async () => {
  
    // Data to be sent
    const data = {
        title: 'foo',
        body: 'bar',
        userId: 1,
    }
  
    try {
  
        // Make request
        const {body} = await superagent.post(
  'https://jsonplaceholder.typicode.com/posts')
                             .send(data)       
        // Show response data
        console.log(body)
    } catch (err) {
        console.error(err)
    }
  })();

Paso para ejecutar la aplicación: Abra la terminal y escriba el siguiente comando.

node index.js

Producción:

respuesta de solicitud de superagente

 

Enfoque 3: aquí enviaremos una solicitud para actualizar un recurso utilizando la biblioteca de búsqueda de Nodes . Si ya ha trabajado con Fetch en el navegador, entonces puede ser su buena opción para su servidor NodeJS. 

Módulo de instalación:

npm i node-fetch

Vuelva a escribir index.js con el siguiente código.

index.js

const fetch = require('node-fetch');
  
// Propmise then/catch block
// Make request
fetch('https://jsonplaceholder.typicode.com/posts/1', {
  method: 'PUT',
  body: JSON.stringify({
    id: 1,
    title: 'fun',
    body: 'bar',
    userId: 1,
  }),
  headers: {
    'Content-type': 'application/json; charset=UTF-8',
  },
})
  // Parse JSON data
  .then((response) => response.json())
  
  // Showing response
  .then((json) => console.log(json))
  .catch(err => console.log(err))

Paso para ejecutar la aplicación: Abra la terminal y escriba el siguiente comando.

node index.js

Producción:

respuesta de solicitud de búsqueda de Node

Enfoque 4:  aquí enviaremos una solicitud para obtener todos los recursos utilizando el módulo HTTP . NodeJS ha incorporado un módulo HTTP para realizar requests de red. Pero el inconveniente es que no es tan fácil de usar como la otra solución. Debe analizar manualmente los datos después de recibirlos.

Módulo de instalación: es un módulo incorporado, no necesita instalación. Solo enchufar y jugar. 

Vuelva a escribir index.js con el siguiente código.

index.js

// Importing https module
const http = require('http');
  
// Setting the configuration for
// the request
const options = {
    hostname: 'jsonplaceholder.typicode.com',
    path: '/posts',
    method: 'GET'
};
    
// Sending the request
const req = http.request(options, (res) => {
    let data = ''
     
    res.on('data', (chunk) => {
        data += chunk;
    });
    
    // Ending the response 
    res.on('end', () => {
        console.log('Body:', JSON.parse(data))
    });
       
}).on("error", (err) => {
    console.log("Error: ", err)
}).end()

Paso para ejecutar la aplicación: Abra la terminal y escriba el siguiente comando.

node index.js

Producción: 

respuesta de solicitud http

Conclusión: mi elección personal es Axios, pero hay otras bibliotecas populares en npm, eche un vistazo:

Publicación traducida automáticamente

Artículo escrito por braktim99 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *