El modulo request para Nodejs es abandonado.

La popular librería usada en mas de 40.000 proyectos queda obsoleta y no tendrá mas actualizaciones. Recomiendan a los desarrolladores a buscar alternativas.

El modulo request para Nodejs es abandonado.

Vaya noticia con la que me he encontrado aquí, si si el modulo request es abandonado y las razones que ha expuesto el creador son totalmente lógicas, request es obsoleta actualmente desde el diseño.

El ecosistema de JavaScript ha cambiado rápidamente y los patrones de código en el núcleo de
request están desactualizados.

Si queréis leer la noticia completa podéis hacerlo desde aquí.

Puesto que request es obsoleta, vamos a ver unas alternativas que reemplacen el popular modulo para Nodejs.

Yo personalmente mis proyectos que dependen de request ya los he actualizado. El reemplazo que uso actualmente es axios. Como yo, recomiendo que actualicen los proyectos que dependan de request.

Para ver el funcionamiento de las próximos módulos realizaremos una petición GET al API publica de Bitbucket.

Alternativas a request

Axios

El primer remplazo, el cual recomiendo es axios, un modulo HTTP basado en promesas, muy fácil de utilizar.

axios
Promise based HTTP client for the browser and node.js

Para instalar el modulo:

npm install axios

Ejemplo:

const axios = require('axios').default;

// https://www.npmjs.com/package/axios

// make a simple request in axios
axios.get('https://api.bitbucket.org/2.0/users/rsdiaz')
  .then((response) => {
    // handle success
    console.log(response.data);
  })
  .catch((error) => {
    // handle error
    console.log(error);
  })
  .finally(() => {
    // always executed
    console.log('good job, end to make request in axios...');
  })

Node-fetch

Como segunda opción tenemos a node-fetch, otro modulo basado en promesas para peticiones HTTP. Como dicen sus desarrolladores un XMLHttpRequest en Node.js. Un modulo con cero dependencias.

node-fetch
A light-weight module that brings window.fetch to node.js

Instalación:

npm install node-fetch

Ejemplo:

const node_fetch = require('node-fetch');

// https://www.npmjs.com/package/node-fetch

// make a simple request in node-fetch
node_fetch('https://api.bitbucket.org/2.0/users/rsdiaz')
  .then((res) => {
    return res.json();
  })
  .then((json) => {
    return console.log(json)
  })
  .catch((error) => {
    return console.error(error)
  })
  .finally(() => {
    console.log('god job, end to make request in node-fetch...');
  });

Got

Como tercera opción got, otro modulo para peticiones HTTP que últimamente tiene unas descargas semanales de infarto.

got
Human-friendly and powerful HTTP request library for Node.js

Instalación:

npm install got

Ejemplo:

const got = require('got');

//  https://www.npmjs.com/package/got

// make a simple request in got

(async () => {
  try {
      const response = await got('https://api.bitbucket.org/2.0/users/rsdiaz');
      console.log(JSON.parse(response.body));
  } catch (error) {
      console.log(error.response.body);
  }
})();

Estos tres módulos son buenos sustitutos de request, cada uno de estos tres módulos tienen características diferentes que seguro que se ajustaran a vuestros proyectos .
Recomiendo leerse la documentación de cada uno de ellos y así valorar cual de ellos se ajusta mas a vuestras necesidades.

Y con esto hasta aquí, se marcha un clásico de Nodejs pero eso bueno, JavaScript sigue evolucionando.

Si conocéis otros módulos, un comentario para compartir conocimientos.
Un saludo.

Enlaces

Noticia  en The Register - https://www.theregister.co.uk/2020/02/12/requiem_for_request

axios en NPM - https://www.npmjs.com/package/axios

node-fetch en NPM - https://www.npmjs.com/package/node-fetch

got en NPM - https://www.npmjs.com/package/got

💌 Suscribete al blog

Contacta conmigo

Para contactar conmigo, puedes hacerlo accediendo a la pagina de contacto y rellenando el formulario.

También puedes escribirme a traves Twitter.

Roberto Serrano Diaz-Grande

Desarrollador Web FullStack

Este sitio web utiliza cookies para garantizar que obtenga la mejor experiencia en nuestro sitio web Más información