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