Comprendre les webhooks

Les webhooks sont une technologie qui a été inspirée par le besoin de connexions en temps quasi réel entre des systèmes d’entreprise distincts. Alors que les processus ETL, les exportations et les importations de données ou les bus de services d’entreprise existent depuis de nombreuses années, les webhooks représentent un nouveau modèle d’intégration entre ces systèmes et sont de plus en plus mis en œuvre dans divers types de logiciels.

Il est possible de définir plus simplement les webhooks comme un message de système à système (une charge utile) qui est envoyé une fois qu’une action donnée s’est produite (un déclencheur), que l’action ou l’événement ait lieu dans un système de gestion de données ou une application. La taille, le contenu ou l’étendue de ces messages de charge utile peut varier, mais en général, il existe un modèle de système source et de système de destination, avec des webhooks configurés dans la source qui envoient des informations à la destination. Plutôt que de s’exécuter selon une planification temporelle, les webhooks sont généralement déclenchés juste à temps, par exemple lorsqu’un événement donné se produit, notamment lorsqu’un formulaire est modifié, qu’un fichier est supprimé, qu’un utilisateur est créé, etc.

D’un point de vue technique, un webhook est généralement défini comme une requête POST adressée à un point de terminaison HTTPS, qui peut être accessible de manière anonyme ou sécurisée par un simple jeton ou une clé, avec un contenu au format JSON. Le contenu de la requête POST se rapporte à l’événement qui vient de se produire (voir exemples ci-après) et la destination reçoit le message et le traite selon sa propre logique. Ces messages sont le plus souvent des documents JSON (par convention, mais ce n’est pas une définition) et peuvent contenir des ensembles d’informations étendus ou limités selon la façon dont ils ont été conçus.

Remarque:

Les webhooks sont généralement considérés comme une méthode d’intégration efficace, mais pas infaillible. Comme ils sont autonomes par rapport au point de terminaison de destination, il n’y a aucune garantie qu’un message du système source atteindra la destination. Des problèmes tels que des pannes de réseau, l’échec d’un point de terminaison ou un corps de message mal construit peuvent entraîner l’échec de ce message. Cela signifie que les webhooks ne sont pas parfaitement fiables. Toutefois, ils ne sont pas véritablement différents d’une API REST ou d’un point de terminaison qui pourraient souffrir des mêmes problèmes de fiabilité.

Les webhooks en tant que fonctionnalité sont généralement ajoutés à un système ou à une application pour des raisons spécifiques, et non en tant que fonctionnalité ou processus de base pour toutes les requêtes ou interfaces. Ils permettent souvent d’obtenir des informations, ou des messages basés sur des événements, dans d’autres systèmes axés sur la notification ou l’automatisation, tels que Power Automate ou Zapier. Une requête de webhook peut également être envoyée à un service Web ou à un point de terminaison personnalisé, ou envoyée à un outil de géotraitement ArcGIS.

Des recommandations supplémentaires relatives aux webhooks, ainsi que des exemples de code pour la réception et le traitement des webhooks, sont disponibles dans le référentiel Github webhook-samples d’Esri.

Webhooks dans les produits ArcGIS

Les fonctionnalités de webhook sont disponibles dans différentes parties du système ArcGIS et peuvent être utilisées pour lier des processus entre eux, s’intégrer à d’autres systèmes et déclencher des événements associés qui interviennent sur les données contenues dans le webhook. Plusieurs applications ou systèmes ArcGIS utilisent nativement les webhooks, notamment :

  • Webhooks du service d’entités hébergé ArcGIS Online
  • Webhooks d’organisation, de service d’entités et de service de géotraitement ArcGIS Enterprise
  • Webhooks de l’application de terrain et du formulaire Web Survey123
  • ArcGIS Field Maps – Intégration Make.com avec les webhooks
  • Récepteur webhook Workflow Manager Server
  • ArcGIS Notebook Server

ArcGIS Online

Dans ArcGIS Online, les webhooks sont mis à disposition dans le contexte des services d’entités, lesquels peuvent être configurés pour envoyer des webhooks en fonction de différentes conditions (telles qu’une nouvelle entité ou une modification) vers plusieurs destinations (par exemple, différents points de terminaison peuvent recevoir de nouvelles fonctionnalités plutôt que des modifications). Cet article de blog fournit quelques exemples de la façon dont les webhooks peuvent être créés et utilisés. Le corps du webhook contient des informations sur l’ensemble des entités modifiées, que le système distant peut utiliser pour renvoyer une requête à ArcGIS Online et obtenir les modifications transactionnelles réelles.

ArcGIS Enterprise

Dans ArcGIS Enterprise, les webhooks prennent également en charge les webhooks basés sur des services d’entités, d’une manière très proche à ArcGIS Online, mais prennent également en charge plusieurs autres modèles.  Ces webhooks basés sur un service d’entités sont configurés à partir du répertoire administrateur d’ArcGIS Server. Pour plus d’informations sur la configuration d’un webhook basé sur un service d’entités, consultez Créer des webhooks.

Il est possible de configurer les webhooks du service de géotraitement de sorte qu’ils s’exécutent à la fin d’une tâche du service de géotraitement, en informant un système distant que la tâche est terminée, et qu’ils incluent les résultats de la tâche (réussie, échouée ou annulée) ainsi qu’une URL permettant au système distant de récupérer l’état. Le contenu du webhook du service de géotraitement est décrit plus en détail dans la documentation ArcGIS Enterprise.

Ce billet de blog décrit un exemple d’utilisation conjointe des webhooks du service d’entités et du service de géotraitement pour automatiser un processus de création de rapports citoyens à l’aide d’un système de gestion du travail.

ArcGIS Enterprise prend également en charge les webhooks d’organisation, qui sont déclenchés par les modifications apportées aux utilisateurs, aux groupes et au contenu dans le déploiement d’ArcGIS Enterprise. Ces webhooks peuvent être définis pour s’exécuter sur un type d’événement spécifique (comme la création d’un nouveau groupe) ou sur de nombreux types d’événements (ce qui permet au système distant d’analyser et de gérer les événements indépendamment).

Applications mobiles ArcGIS

ArcGIS Survey123 et ArcGIS Field Maps prennent tous deux en charge une fonctionnalité de webhook.

Field Maps fournit un module pour Make.com qui facilite l’intégration des processus Field Maps utilisant des services d’entités hébergés dans ArcGIS Online. Pour plus d’informations, consultez Automatiser Field Maps.

Dans Survey123, des processus similaires existent pour Make.com et ArcGIS Power Automate, mais les webhooks peuvent également être configurés manuellement afin d’être envoyés à une destination à partir de l’application de terrain (lors de la collecte de données) ou du formulaire Web Survey123 (lors de l’envoi de données via un navigateur). Pour plus d’informations, reportez-vous à la section Configurer un webhook sur le site Web de Survey123.

ArcGIS Workflow Manager

Pour prendre en charge l’intégration avec d’autres systèmes et processus, ArcGIS Workflow Manager offre un moyen simple de créer un point de terminaison qui reçoit des webhooks, généralement pour créer une tâche basée sur des informations externes. Pour plus d’informations, consultez la rubrique Créer des tâches avec des webhooks.

Considérations relatives à l’architecture

Lors de la conception d’un système ou d’une intégration pour laquelle les webhooks joueront un rôle important dans une solution ou un processus, il est important de prendre en compte certaines des exigences fonctionnelles et non fonctionnelles pour que les webhooks soient efficaces. Ces considérations permettent de s’assurer que les utilisateurs et les parties prenantes du système comprennent le rôle des webhooks dans le système et les limites qui existent.

  • Les webhooks nécessitent une connectivité réseau avec ligne de visée directe. Lorsqu’un événement se produit, les webhooks sont envoyés immédiatement, et si un accès au réseau ou une panne interrompt cette requête, il peut arriver que la charge utile n’atteigne jamais la destination finale. Bien que certains systèmes prennent en charge la logique de nouvelle tentative automatique pour renvoyer une charge utile de webhook, celle-ci n’est pas toujours fiable et peut entraîner la perte de messages dans des conditions de réseau incompatibles.
  • Comme les webhooks peuvent contenir des informations confidentielles, il est nécessaire d’examiner avec soin la destination. Les données utiles du service d’entités et du webhook d’organisation ArcGIS Enterprise contiennent des informations sur une opération et l’utilisateur qui l’a effectuée, ainsi que des informations qui permettent au destinataire d’effectuer une requête pour obtenir les détails de cette opération. Les données utiles de webhook Survey123 incluent l’entité soumise ainsi que d’autres informations spécifiques à l’utilisateur et à la session. Bien que la plupart des processus de webhook envoient des charges utiles à un système qui est également contrôlé et configuré par le groupe propriétaire du système SIG, il est important de noter que ces informations laissent ArcGIS dans le webhook et doivent être traitées avec soin dans le système de destination.
  • Les webhooks ne garantissent pas la livraison. Les intervalles de nouvelle tentative et les tentatives essaient d’obtenir un taux de réussite plus élevé, mais les webhooks ne garantissent pas que chaque événement ou déclencheur permette aux données d’atteindre le système de destination. Même si cela est acceptable dans le cas de nombreux processus, réfléchissez à la nécessité de mettre en place un post-traitement de validation de l’exhaustivité des données afin de garantir le traitement correct de tous les événements.
Top