Los webhooks son una tecnología que se ha inspirado en la necesidad de conexiones casi en tiempo real entre sistemas empresariales independientes. Aunque los procesos ETL, las exportaciones e importaciones de datos o los buses de servicios empresariales existen desde hace muchos años, los webhooks representan un nuevo patrón de integración entre estos sistemas y se implementan cada vez más en diversos tipos de software.
Los webhooks pueden definirse de forma más sencilla como un mensaje de sistema a sistema (una carga útil) que se envía después de que se produzca una determinada acción (un desencadenador), tanto si la acción o el evento se producen en un sistema de administración de datos como en una aplicación. Estos mensajes de carga útil pueden variar en tamaño, contenido o alcance, pero en general, existe un patrón de un sistema de origen y un sistema de destino, con webhooks configurados en el origen que envían información al destino. En lugar de ejecutarse en una programación basada en el tiempo, los webhooks suelen activarse justo a tiempo, como cuando se produce un determinado evento, como cuando se edita un formulario, se elimina un archivo, se crea un usuario, etc.
A nivel técnico, un webhook suele definirse como una solicitud POST a un extremo HTTPS, que puede ser accesible de forma anónima o estar protegido por una clave o token simples, con un cuerpo de contenido como JSON. El contenido del POST se refiere al evento que acaba de producirse (véanse los ejemplos a continuación) y el destino recibe el mensaje y lo procesa basándose en su propia lógica. Estos mensajes son con frecuencia documentos JSON (por convención, pero no por definición) y pueden contener conjuntos de información limitados o amplios en función de cómo hayan sido diseñados.
Los webhooks suelen considerarse un método de integración eficaz, pero no infalible. Al estar débilmente acoplados al extremo de destino, no hay garantía de que un mensaje del sistema de origen llegue al destino. Problemas como interrupciones de la red, un extremo averiado o un cuerpo de mensaje mal construido pueden hacer que ese mensaje falle. Esto significa que los webhooks no son perfectamente fiables, aunque no son significativamente diferentes de cualquier otro API REST o extremo que pudiera sufrir los mismos problemas de fiabilidad.
Los webhooks como funcionalidad suelen agregarse a un sistema o aplicación por razones específicas, no como una funcionalidad o procesamiento base para todas las solicitudes o interfaces. Se utilizan con frecuencia para obtener información, o mensajes basados en eventos, en otros sistemas que se centran en la notificación o automatización, como Power Automate o Zapier. Una solicitud de webhook también podría enviarse a un servicio web o extremo personalizado o enviarse a una herramienta de geoprocesamiento de ArcGIS.
Encontrará recomendaciones adicionales relacionadas con los webhooks, así como ejemplos de código para la recepción y procesamiento de webhooks, en el repositorio de Github ejemplos de webhook de Esri.
Las funcionalidades de los webhooks están disponibles en varias partes diferentes del sistema ArcGIS y pueden utilizarse para enlazar flujos de trabajo, integrarse con otros sistemas y desencadenar eventos relacionados que operen sobre los datos contenidos en el webhook. Varias aplicaciones o sistemas de ArcGIS hacen un uso nativo de los webhooks, entre ellos:
Los webhooks de ArcGIS Online están disponibles en el contexto de los servicios de entidades, que pueden configurarse para enviar webhooks en función de distintas condiciones, como una nueva entidad o una edición, y a varios destinos; por ejemplo, distintos extremos podrían recibir nuevas entidades en lugar de ediciones. Esta publicación del blog comparte algunos ejemplos de cómo se pueden crear y utilizar webhooks. El cuerpo del webhook contendrá información sobre el conjunto de entidades editadas, que el sistema remoto podrá utilizar para consultar de nuevo a ArcGIS Online y obtener los cambios transaccionales reales.
Los webhooks en ArcGIS Enterprise también admiten webhooks basados en servicios de entidades, de forma muy similar a ArcGIS Online, pero también admiten varios patrones más. Estos webhooks basados en servicios de entidades se configuran desde el directorio del administrador de ArcGIS Server. Consulte crear webhooks para obtener información detallada sobre cómo configurar un webhook basado en un servicio de entidades.
Los webhooks del servicio de geoprocesamiento pueden configurarse para que se ejecuten al finalizar un trabajo del servicio de geoprocesamiento, notificando a un sistema remoto que el trabajo ha finalizado, e incluyan los resultados del trabajo (realizado con éxito, fallido o cancelado) junto con una URL que el sistema remoto pueda utilizar para obtener el estado. El contenido del webhook del servicio de geoprocesamiento se describe con más detalle en la documentación de ArcGIS Enterprise.
En esta publicación del blog se describe un ejemplo de cómo utilizar conjuntamente los webhooks del servicio de entidades y del servicio de geoprocesamiento para automatizar un flujo de trabajo de información ciudadana con un sistema de administración del trabajo.
ArcGIS Enterprise también admite webhooks de organización, que se desencadenan con los cambios de usuarios, grupos y contenidos en la implementación de ArcGIS Enterprise. Estos webhooks pueden definirse para que se ejecuten en un tipo de evento específico (como la creación de un nuevo grupo) o en muchos tipos de eventos (permitiendo que el sistema remoto analice y gestione los eventos de forma independiente).
Tanto ArcGIS Survey123 como ArcGIS Field Maps admiten una funcionalidad de webhook.
Field Maps proporciona un módulo para Make.com que facilita la integración de los flujos de trabajo de Field Maps que utilizan servicios de entidades alojadas en ArcGIS Online. Consulte Automatizar Field Maps para conocer más detalles.
En Survey123, existen flujos de trabajo similares tanto para Make.com como para ArcGIS Power Automate, pero los webhooks también pueden configurarse manualmente para que se envíen a un destino desde la aplicación de campo (cuando se recogen datos) o desde el formulario web de Survey123 (cuando se envían datos a través de un navegador). Consulte Configurar un webhook en el sitio web de Survey123 para obtener más detalles.
Para admitir la integración con otros sistemas y flujos de trabajo, ArcGIS Workflow Manager proporciona una forma sencilla de crear un extremo que reciba webhooks, generalmente para crear un trabajo basado en información externa. Consulte Crear trabajos con webhooks para obtener más detalles.
A la hora de diseñar un sistema o una integración en la que los webhooks vayan a desempeñar un papel importante en una solución o flujo de trabajo, es importante tener en cuenta algunos de los requisitos funcionales y no funcionales para que los webhooks tengan éxito. Estas consideraciones garantizan que los usuarios del sistema y las partes interesadas comprendan correctamente el rol de los webhooks en el sistema, así como las limitaciones existentes.