0%
Inicio 9 Glossary Item 9 Webhooks
« Back to Glossary Index

Nivel Principiante

Imagina que tienes una aplicación de fotos y quieres que tus amigos te avisen en cuanto subas una foto nueva. En lugar de que tus amigos te pregunten a cada rato si ya subiste una foto, les das una dirección especial (el webhook). Cuando subes una foto, tu aplicación envía automáticamente un mensaje a esa dirección, y tus amigos reciben el aviso al instante. Un webhook es una forma de que las aplicaciones se comuniquen entre sí de forma automática.

Nivel Intermedio

Un Webhook es un método para que una aplicación notifique a otra sobre la ocurrencia de un evento en tiempo real. En lugar de que el cliente tenga que «preguntar» al servidor si hay nueva información (polling), un webhook es una llamada HTTP POST que el servidor realiza al cliente cuando ocurre un evento específico. Es un mecanismo de comunicación asíncrona y de devolución de llamada (callback).

El proceso es sencillo: la aplicación de origen, al detectar un evento (por ejemplo, una compra exitosa o un nuevo registro de usuario), envía una petición a una URL específica proporcionada por la aplicación de destino. Los webhooks son una forma muy eficiente de integrar servicios y automatizar flujos de trabajo, ya que eliminan la necesidad de que una aplicación esté constantemente consultando a otra para buscar actualizaciones.

Nivel Avanzado

Técnicamente, un Webhook es una implementación de la arquitectura de eventos y se basa en el principio de inversión de control. En lugar de que el cliente inicie la comunicación, el servidor toma la iniciativa y envía un HTTP POST a la URL del endpoint del cliente. El cuerpo de la petición POST contiene una carga útil (payload) en formato JSON o XML que describe el evento que ha ocurrido.

Para la seguridad y fiabilidad, las implementaciones de webhooks deben considerar:

  • Seguridad: Los webhooks a menudo se envían con una firma criptográfica en los encabezados (X-Hub-Signature) para que el receptor pueda verificar que la petición proviene de una fuente legítima.
  • Manejo de Errores: Si el endpoint del receptor falla, el emisor debe implementar una lógica de reintentos con un retroceso exponencial para asegurar que la notificación se entregue finalmente.
  • Idempotencia: En algunos casos, el receptor debe ser capaz de procesar la misma notificación varias veces sin causar efectos secundarios, ya que el emisor puede reenviarla si no recibe un código de estado 200 OK.

Los webhooks son un componente fundamental en la arquitectura de microservicios, la Integración Continua (CI) y la automatización de procesos de negocio. Son utilizados por plataformas como GitHub (para notificar sobre nuevos commits), Stripe (para notificar sobre pagos) y Slack (para integrar notificaciones de otras aplicaciones).

« Volver al índice del glosario