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.
- Uso del módulo AXIOS
- Uso de SuperAgente
- Usando el módulo Node-Fetch
- 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.
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:
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:
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:
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:
Conclusión: mi elección personal es Axios, pero hay otras bibliotecas populares en npm, eche un vistazo: