Comprender los webhooks

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.

Nota:

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.

Webhooks en productos ArcGIS

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:

  • Webhooks del servicio de entidades alojado en ArcGIS Online
  • Webhooks de organización de ArcGIS Enterprise, servicio de entidades y servicio de geoprocesamiento
  • Aplicación de campo Survey123 y webhooks de formularios web
  • ArcGIS Field Maps: integración de Make.com con webhooks
  • Receptor webhook de Workflow Manager Server
  • ArcGIS Notebook Server

ArcGIS Online

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.

ArcGIS Enterprise

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).

Aplicaciones móviles de ArcGIS

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.

ArcGIS Workflow Manager

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.

Consideraciones de arquitectura

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.

  • Los webhooks requieren una conectividad de red en línea de visión. Cuando se produce un evento, los webhooks se envían inmediatamente, y si cualquier acceso o corte de la red interrumpe esta solicitud, puede provocar que la carga útil nunca llegue al destino final. Aunque algunos sistemas admiten una lógica de reintento automático para volver a enviar la carga útil de un webhook, no siempre se puede confiar en ello y puede provocar la pérdida de mensajes en condiciones de red inconsistentes.
  • Los webhooks pueden contener información sensible, por lo que debe considerarse cuidadosamente su destino. Las cargas útiles del servicio de entidades y del webhook organizativo de ArcGIS Enterprise contienen información sobre una operación y el usuario que la realizó, junto con información que permite al receptor realizar una solicitud para obtener los detalles de dicha operación. Las cargas útiles de los webhooks de Survey123 incluyen la entidad enviada junto con otra información específica del usuario y de la sesión. Aunque la mayoría de los flujos de trabajo de webhook envían cargas útiles a un sistema que también está controlado y configurado por el grupo propietario del sistema SIG, es importante tener en cuenta que esta información sale de ArcGIS en el webhook y debe tratarse con cuidado en el sistema de destino.
  • Los webhooks no garantizan la entrega. Aunque los intervalos de reintento y los intentos pueden tratar de lograr una mayor tasa de éxito, los webhooks no garantizan que cada evento o desencadenador dé lugar a que los datos lleguen al sistema de destino. Aunque esto puede ser aceptable para muchos flujos de trabajo, considere si puede ser necesario un proceso posterior para validar la integridad de los datos y garantizar que todos los eventos se han procesado correctamente.
Top