Talleres pasados

Desarrollo de una aplicación con Node JS y Webhooks

Miércoles 7 de Diciembre de 2022

En este taller desarrollamos una aplicación en Node JS desde el principio y aprovechamos todo el potencial de los Webhooks.

¡Revive el taller online!

Resumen

En este taller, vamos a profundizar en el desarrollo de una aplicación utilizando Node JS y Webhooks. La idea es revisar conceptos básicos y avanzar hacia una implementación práctica que demuestre cómo podemos reaccionar ante eventos específicos utilizando Webhooks. Este material se basa en un webinar reciente que ofrecí sobre el mismo tema, así que si estás buscando una forma eficiente de manejar eventos y automatizar procesos, este es el lugar adecuado.

Requisitos previos

Para poder seguir los pasos de este taller, es necesario tener instalada la última versión LTS de Node, abrir los puertos 80 y 3000 de TCP en el firewall, y tener un repositorio en GitHub con un archivo index.html básico. Además, necesitaremos instalar Express y PM2. Aquí hay un breve repaso de estos requisitos:

  • Node JS: Asegúrate de tener la versión LTS instalada.
  • Puertos TCP: Los puertos 80 y 3000 deben estar abiertos en tu firewall.
  • Repositorio en GitHub: Debes tener un repositorio con un archivo index.html.
  • Express: Instalaremos este framework minimalista para facilitar la creación de rutas y manejo de solicitudes HTTP.
  • PM2: Este administrador de procesos nos ayudará a mantener nuestra aplicación en ejecución y gestionar reinicios automáticos.

Conceptos básicos de Node JS y Express

Node JS nos permite escribir código JavaScript tanto del lado del cliente como del servidor. Su naturaleza asíncrona facilita la realización de operaciones de entrada y salida de manera eficiente, lo que es ideal para aplicaciones que manejan almacenamiento y redes.

Express, por otro lado, es un framework minimalista para Node JS que simplifica la creación de rutas y el manejo de solicitudes HTTP. Utilizar Express nos permite escribir aplicaciones web de manera más rápida y eficiente.

¿Qué son los Webhooks?

Los Webhooks son una forma de que un servicio externo envíe datos a tu aplicación en respuesta a ciertos eventos. A diferencia de una API tradicional, donde tu aplicación solicita datos, los Webhooks permiten que el servicio externo inicie la comunicación cuando ocurre un evento.

Una analogía común es la de un vecino que cuida tu casa mientras estás de vacaciones. En una API tradicional, sería como llamar a tu vecino regularmente para preguntar si todo está bien. Con un Webhook, el vecino te llamaría solo si ocurre algo importante, como un incendio. Esto mejora la eficiencia al reducir la necesidad de solicitudes constantes.

Implementación de una API con Webhooks

Vamos a crear una API simple que reaccione a eventos de Webhooks utilizando Express. Primero, debemos configurar un repositorio en GitHub y crear un archivo index.html. Luego, configuraremos un Webhook en GitHub para que apunte a nuestra API.

Configuración del repositorio

  • Crea un repositorio en GitHub y agrega un archivo index.html.
  • Configura un Webhook que apunte a la URL de nuestra API.

Código de la API

  • Instalamos Express y creamos un archivo index.js donde configuramos las rutas y las acciones que nuestra API debe realizar al recibir una solicitud POST desde el Webhook.

Instalación de PM2

Para mantener nuestra API en ejecución, instalamos PM2 con el siguiente comando:

npm install pm2 -g

Ejemplo de código

const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const { exec } = require('child_process');

app.use(bodyParser.json());

app.post('/webhook', (req, res) => {
    console.log('Webhook received:', req.body);
    exec('git -C /path/to/your/repo pull', (error, stdout, stderr) => {
        if (error) {
            console.error(`exec error: ${error}`);
            return;
        }
        console.log(`stdout: ${stdout}`);
        console.error(`stderr: ${stderr}`);
    });
    res.status(200).send('Webhook received');
});

app.listen(3000, () => {
    console.log('Server is running on port 3000');
});

Configuración de Nginx

  • Utilizamos Nginx para servir nuestro archivo index.html.
  • Configuramos Nginx para que sirva el contenido del directorio donde se encuentra nuestro archivo index.html.

Conclusión

Desarrollar una aplicación con Node JS y Webhooks puede ser un proceso sencillo si se siguen los pasos adecuados. Desde la instalación de los requisitos previos hasta la configuración de un Webhook en GitHub y la implementación de una API con Express, cada paso es crucial para asegurar que nuestra aplicación funcione correctamente. Los Webhooks nos permiten reaccionar a eventos de manera eficiente y automatizar procesos, mejorando así el rendimiento de nuestras aplicaciones.

Participantes

Ponente:

Software Development Specialist en Scalar. Docente colaborador de carrera Linux Argentina. Ha escrito numerosos artículos para DigitalOcean, Linode, Carrera Linux Argentina y Tecmint.

También te puede interesar...

Viernes 24 de Octubre
Cloud, desarrollo & DevOps
Jueves 9 de Octubre
Cloud, desarrollo & DevOps
Jueves 25 de Septiembre
Cloud, desarrollo & DevOps
Jueves 11 de Septiembre
Cloud, desarrollo & DevOps
Entérate de nuestros próximos talleres
Suscríbete a nuestro newsletter para recibir nuestras novedades.
Talleres nuevos todas las semanas.
Recibe nuestras novedades para no perderte ninguno.