Inicio › Tecnología › API De Eventos En Tiempo Real
Un webhook, a veces descrito como API de eventos en tiempo real, invierte el modelo habitual de una API: en lugar de qué tu sistema pregunte periódicamente a otro servicio si algo ha cambiado, es el otro servicio el qué envía automáticamente una petición HTTP a una URL qué tú has registrado en el momento exacto en qué ocurre un evento concreto, como un pago confirmado, un nuevo comentario o un envío entregado. El payload de esa notificación suele incluir los datos del evento en formato JSON, y por seguridad casi siempre incorpora una firma criptográfica en las cabeceras qué permite verificar qué la petición procede realmente del proveedor y no ha sido falsificada por un tercero. Servicios de pago, control de versiones o comercio electrónico usan webhooks extensamente para notificar eventos a sistemas externos sin qué estos tengan qué estar constantemente preguntando.
Es cuando un servicio, en vez de esperar qué tú le preguntes si ha pasado algo nuevo, te avisa él solo en el momento en qué ocurre algo importante, enviando la información directamente a tu sistema. Cuando alguien paga en tu tienda online, la pasarela de pago avisa al instante a tu servidor mediante un webhook, sin qué tu sistema tenga qué estar comprobándolo cada pocos segundos.
Al implementar un endpoint qué recibe webhooks, verifica siempre la firma criptográfica qué envía el proveedor en las cabeceras antes de procesar el evento, porque de lo contrario cualquiera qué conozca la URL podría enviar peticiones falsas simulando, por ejemplo, un pago qué nunca ocurrió. Responde con un código 200 lo antes posible y procesa la lógica pesada de forma asíncrona en segundo plano, porque la mayoría de proveedores reintentan el envío si no reciben confirmación rápida, lo qué puede duplicar el procesamiento si tu endpoint tarda demasiado.
El polling consulta activamente y de forma repetida si hay algo nuevo, consumiendo recursos incluso cuando no ha pasado nada; el webhook es pasivo hasta qué el evento ocurre de verdad, lo qué reduce carga y da notificación casi instantánea.
La mayoría de proveedores reintentan la entrega varias veces con intervalos crecientes durante un periodo determinado; aun así conviene tener un mecanismo para recuperar eventos perdidos, como consultar periódicamente el historial de eventos de la API del proveedor como respaldo.
Verificando la firma criptográfica qué el proveedor incluye en una cabecera de la petición, calculada con una clave secreta qué solo tú y el proveedor conocéis; si la firma no coincide, el evento debe descartarse sin procesarlo.