Les notions d’API et de webhook commencent progressivement à faire partie du jargon business notamment avec la démocratisation du Nocode.
Pour autant, il peut être compliqué de les appréhender. C’est ce qu’on va tenter de vous expliquer dans cet article. Nous allons aussi parler de comment configurer un webhook en temps général et sur Discord. Et quels sont les méthodes pour utiliser le webhook dans le développement d'une infrastructure.
Souvent appelé “Reverse API” ou encore “HTTP callback”, le webhook est un outil qui permet de déclencher une action lorsqu’un événement déterminé se produit.
Pour rentrer un peu dans la technique, le webhook est en fait une requête HTTP de type POST qui va envoyer des informations (des données) par le biais d’une URL pour un événement précis.
Ces données sont généralement envoyées dans une structure de données JSON - qui permet aux outils de les traiter.
Les cas d’usage sont très nombreux. En voici quelques exemples :
Vous l’aurez compris, les webhooks sont un outil aujourd’hui indispensable pour automatiser des tâches à forte valeur ajoutée à partir d’un événement, autrement dit “trigger”.
Les webhooks présentent de nombreux avantages pour les développeurs et les utilisateurs de systèmes d'information. Voici cinq points principaux :
Il est vrai qu’on peut rapidement s’y perdre parmi ces différents concepts. Le webhook et l’API se ressemblent dans le sens où ils permettent tous les deux de faire transiter des données entre deux outils.
La différence se fait davantage dans le “comment”. Nous avons vu dans la partie précédente que le webhook se basait sur des événements. L’API est-elle “request-based”, c’est-à-dire basée sur une requête. Ici, nous allons cette fois interroger un outil pour récupérer des données - dans le cadre d’une requête GET. C’est ce qu’on appelle le “polling”, autrement dit le “sondage”.
À savoir qu’il existe quatre types de requêtes : GET, POST, PUT, DELETE. Mais ce n’est pas si important dans le cadre de cet article.
On va privilégier les APIs lorsque l’on doit gérer des changements constants dans les données. En effet, à chaque fois que vous allez sonder le service, de nouvelles informations vont être récupérées. On peut prendre l’exemple des données issues des campagnes publicitaires telles que Facebook Ads ou Google Ads.
Avoir recours à une API n’aurait pas de sens par rapport aux Webhooks dans le cadre de la génération d’une facture. Effectivement, l’objectif ici est de déclencher une action instantanément plutôt que d’interroger à intervalles réguliers le service pour savoir si un client a acheté un produit ou non.
Voici une illustration qui vous permettra de mieux visualiser le mécanisme et la différence.
Les usages sont totalement différents donc il n’est pas pertinent de vouloir comparer les deux. Tout dépend de l’objectif et du type de data que vous souhaitez manipuler.
La configuration d'un webhook dépend du système que vous utilisez. Cependant, le processus général est similaire sur la plupart des plateformes. Voici les étapes générales pour configurer un webhook :
Nous allons maintenant donner un exemple en détaillant comment configurer un webhook facilement sur discord.
Voici les étapes :
Les webhooks sont généralement employés pour faciliter les interactions entre deux programmes ou applications, cependant, ils peuvent aussi être utilisés pour automatiser des processus IaC (Infrastructure-as-code) et mettre en œuvre des méthodes GitOps.
L'Infrastructure-as-Code, ou IaC, est une méthode de gestion et de provisionnement des infrastructures informatiques par le biais de fichiers de définition lisible par machine, plutôt que par des configurations matérielles physiques ou des outils de configuration interactive.
En d'autres termes, il s'agit d'écrire du code (qui peut être vérifié dans un système de contrôle de version) pour définir et gérer votre infrastructure, au lieu d'utiliser des interfaces utilisateur graphiques ou des commandes manuelles.
Voici quelques points clés sur l'IaC :
Des outils comme Terraform, Ansible, Chef, Puppet et AWS CloudFormation sont couramment utilisés pour mettre en œuvre l'IaC.
GitOps est une méthode de mise en œuvre de l'infrastructure qui utilise les systèmes de contrôle de version Git comme source unique de vérité pour l'infrastructure et les applications. GitOps est souvent associé à Kubernetes, mais le concept peut s'appliquer à d'autres systèmes aussi.
Voici quelques points clés sur GitOps :
Tout ça fait rêver mais comment ça se passe dans les faits ?
Depuis des années, ces outils ont été sollicités purement et difficilement par du code. La data est devenue si importante pour les entreprises que le python est aujourd’hui devenu le langage le plus populaire des développeurs. C’est aujourd’hui le langage que les data engineers utilisent pour faire des requêtes et interroger les outils, récupérer des données et automatiser les processus.
Mais heureusement, les outils Nocode et low-code se sont vite mis à la page pour proposer aux utilisateurs une méthode beaucoup plus accessible pour obtenir les mêmes résultats.
On peut prendre l’exemple de Zapier, Make (ex-Integromat) ou encore n8n, la solution d’automatisation open source - qui offre des modules de webhook.
Un webhook est un outil qui permet de déclencher une action lorsqu'un événement spécifique se produit. Il s'agit d'une requête HTTP de type POST qui envoie des informations par le biais d'une URL pour un événement donné. Les données sont généralement envoyées dans une structure JSON.
Les webhooks ont de nombreux cas d'utilisation. Par exemple, ils peuvent être utilisés pour créer un nouveau contact dans un CRM et envoyer une notification Slack à l'équipe commerciale lorsqu'un utilisateur remplit un formulaire sur un site. Ils peuvent également être utilisés pour créer une facture et envoyer un e-mail automatisé lorsqu'un utilisateur achète un produit sur un site, ou pour envoyer une notification à l'équipe Customer Success lorsque la période d'essai d'un utilisateur se termine.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.
Les outils Nocode, tels que Zapier, Make (ex-Integromat) et n8n, ont facilité l'utilisation des webhooks pour les utilisateurs non techniques. Ces outils permettent d'obtenir des résultats similaires à ceux obtenus avec du code, mais de manière plus accessible.