¿Qué es un webhook?
Un webhook es un tipo de API, o interfaz de programación de aplicaciones, que permite a una aplicación web enviar datos a otra aplicación cuando ocurren eventos predefinidos. Mientras que la mayoría de las APIs manejan intercambios de datos bidireccionales entre software dispar basado en solicitudes de usuario, los webhooks envían datos unidireccionalmente cuando ocurren ciertos eventos. Por ejemplo, un webhook podría enviar la duración del tiempo que un usuario pasó en una página cada vez que el usuario deja la página. Los webhooks también pueden llamarse "devoluciones de llamada web" o "APIs de empuje HTTP".
Los desarrolladores utilizan webhooks junto con otras APIs para crear y gestionar conexiones entre su propio software y otras aplicaciones. Debido a que los webhooks envían datos desencadenados por eventos, generalmente se prefieren sobre las APIs cuando el desarrollador quiere acumular datos a lo largo del tiempo. Por el contrario, las APIs tienden a ser más útiles cuando los desarrolladores quieren que el intercambio de datos ocurra en instancias definidas por el comportamiento del usuario. Mientras que otros tipos de APIs solicitan datos y devuelven un resultado, los webhooks esperan pasivamente a que ocurran eventos de datos.
Para configurar un webhook, los clientes crean una URL de webhook que proporcionan al proveedor del webhook. A partir de entonces, el webhook proveedor envía datos a esa URL de webhook para su ingestión por la aplicación del cliente. La aplicación del cliente valida las solicitudes de webhook entrantes para asegurarse de que los datos entrantes provienen del proveedor y no son una amenaza de seguridad, luego recibe los datos.
Al igual que otras APIs, la información que puede ser monitoreada y enviada por un webhook dado es gobernada y entendida por el sitio anfitrión y el sitio cliente a través de documentación comprensiva. Este "contrato" mutuo permite a ambas partes proteger datos sensibles, ya que un webhook no empaquetará más datos de los necesarios para cumplir con el resultado deseado por el propietario del webhook. De esta manera, ninguna aplicación expone completamente sus propios datos o los de sus usuarios.
Beneficios de usar webhooks
- Reducción de carga de trabajo: Los desarrolladores confían en los webhooks para proporcionar a sus aplicaciones de software información a medida que ocurren eventos. En lugar de monitorear estos eventos ellos mismos, los desarrolladores pueden simplemente establecer un flujo de información con un webhook que rastrea eventos por ellos. Esto reduce la carga de trabajo y permite a los desarrolladores centrarse en otros aspectos de los proyectos en los que están trabajando.
- Operaciones web más fluidas: Los webhooks permiten a las empresas conectar sus aplicaciones web dispares, lo que ayuda con el intercambio de datos directo y eficiente entre esos sistemas. Esto mejora la presencia y el rendimiento web de una empresa al ayudar a mantener sus aplicaciones web sincronizadas entre sí automáticamente.
- Notificaciones: Cuando los desarrolladores quieren implementar notificaciones para sus usuarios, los webhooks proporcionan una manera fácil de hacerlo sin gastar esfuerzo de desarrollo en formas más robustas de APIs. Los webhooks requieren menos tiempo y recursos para construir e implementar que otros tipos de APIs, por lo que sirven como una solución eficiente en casos de uso como este.
- Mejoras en la experiencia del usuario: Las capacidades de intercambio de datos de los webhooks tienen muchos casos de uso, incluida la capacidad de personalizar y mejorar las experiencias de usuario basadas en la recopilación de datos. Por ejemplo, una empresa que analiza los datos de comportamiento de usuario de su aplicación web expuestos por los webhooks puede descubrir puntos de dolor en el recorrido del cliente y trabajar para resolverlos. Al mismo tiempo, las empresas pueden usar webhooks para descubrir qué partes de sus aplicaciones web están recibiendo más participación y capitalizar eso.
- Marketing enfocado: De la misma manera que las empresas pueden mejorar las experiencias de usuario analizando los datos de comportamiento expuestos por los webhooks, los esfuerzos de marketing se benefician de esos mismos datos y permiten a las empresas dirigir anuncios a audiencias específicas. Al adaptar el contenido a los usuarios basándose en datos de comportamiento y demográficos, los mercadólogos obtienen una ventaja que hace que la participación sea más probable. Las empresas pueden entonces continuar rastreando esa participación, creando un ciclo de retroalimentación positivo que maximiza la efectividad de la campaña.
Impactos de usar webhooks
Las empresas de desarrollo de software podrían verse negativamente afectadas por la dependencia de los webhooks:
- Riesgos de seguridad: Las empresas que utilizan webhooks deben tomar medidas para asegurarse de que sus conexiones no las expongan a vulnerabilidades de seguridad. Los clientes de webhook pueden verificar las solicitudes de webhook entrantes validando la firma de la solicitud contra la del host. Los usuarios también pueden proteger con contraseña su URL de webhook para que solo el host y el cliente tengan acceso. Estas prácticas ayudan a proteger contra amenazas como los ataques de suplantación, un tipo de ataque en el que agentes malintencionados falsifican datos para asumir la identidad de un host de webhook.
- Falta de funcionalidad: Los webhooks son más ligeros que otras APIs, lo que los convierte en una herramienta atractiva para los desarrolladores que buscan ingerir datos de otras aplicaciones web. Sin embargo, la naturaleza fácil de implementar de los webhooks no los convierte automáticamente en una mejor solución que las APIs más robustas. En muchos casos, hacer el esfuerzo adicional para conectar APIs bidireccionales que puedan compartir datos cuando se realizan solicitudes de API servirá mejor a los desarrolladores que un webhook. En cierto punto, intentar forzar los webhooks como una solución viable realmente costará tiempo y recursos a los desarrolladores.

Adam Crivello
Adam is a research analyst focused on dev software. He started at G2 in July 2019 and leverages his background in comedy writing and coding to provide engaging, informative research content while building his software expertise. In his free time he enjoys cooking, playing video games, writing and performing comedy, and avoiding sports talk.