Qu'est-ce qu'un webhook ?
Un webhook est un type d'API, ou interface de programmation d'application, qui permet à une application web donnée d'envoyer des données à une autre application lorsque des événements prédéfinis se produisent. Alors que la plupart des API gèrent des échanges de données bidirectionnels entre des logiciels disparates basés sur des demandes d'utilisateur, les webhooks envoient des données unidirectionnelles lorsque certains événements se produisent. Par exemple, un webhook pourrait envoyer la durée de temps qu'un utilisateur a passé sur une page chaque fois qu'il quitte la page. Les webhooks peuvent également être appelés « rappels web » ou « API Push HTTP ».
Les développeurs utilisent les webhooks avec d'autres API pour créer et gérer des connexions entre leurs propres logiciels et d'autres applications. Parce que les webhooks envoient des données déclenchées par des événements, ils sont généralement préférés aux API lorsque le développeur souhaite accumuler des données au fil du temps. En revanche, les API ont tendance à être plus utiles lorsque les développeurs veulent que le partage de données se produise à des moments définis par le comportement de l'utilisateur. Alors que d'autres types d'API font des demandes de données et renvoient un résultat, les webhooks attendent passivement que des événements de données se produisent.
Pour configurer un webhook, les clients créent une URL de webhook qu'ils fournissent au fournisseur de webhook. À partir de ce moment, le webhook fournisseur envoie des données à cette URL de webhook pour ingestion par l'application du client. L'application du client valide les demandes de webhook entrantes pour s'assurer que les données entrantes proviennent du fournisseur et ne constituent pas une menace pour la sécurité, puis reçoit les données.
Comme d'autres API, les informations qui peuvent être surveillées et envoyées par un webhook donné sont régies et comprises par le site hôte et le site client via une documentation complète. Ce « contrat » mutuel permet aux deux parties de protéger les données sensibles, car un webhook n'emballera pas plus de données que nécessaire pour répondre à la sortie souhaitée du propriétaire du webhook. De cette manière, aucune application n'expose complètement ses propres données ou celles de ses utilisateurs.
Avantages de l'utilisation des webhooks
- Charge de travail réduite : Les développeurs comptent sur les webhooks pour fournir à leurs applications logicielles des informations au fur et à mesure que les événements se produisent. Plutôt que de surveiller ces événements eux-mêmes, les développeurs peuvent simplement établir un flux d'informations avec un webhook qui suit les événements pour eux. Cela réduit la charge de travail et permet aux développeurs de se concentrer sur d'autres aspects des projets sur lesquels ils travaillent.
- Opérations web plus fluides : Les webhooks permettent aux entreprises de connecter leurs applications web disparates, ce qui facilite le partage direct et efficace des données entre ces systèmes. Cela améliore la présence et la performance web d'une entreprise en aidant à garder ses applications web synchronisées automatiquement.
- Notifications : Lorsque les développeurs souhaitent mettre en œuvre des notifications pour leurs utilisateurs, les webhooks offrent un moyen simple de le faire sans consacrer d'efforts de développement à des formes d'API plus robustes. Les webhooks nécessitent moins de temps et de ressources pour être construits et mis en œuvre que d'autres types d'API, ils servent donc de solution efficace dans des cas d'utilisation comme celui-ci.
- Amélioration des expériences utilisateur : Les capacités de partage de données des webhooks ont de nombreux cas d'utilisation, y compris la capacité de personnaliser et d'améliorer les expériences utilisateur basées sur la collecte de données. Par exemple, une entreprise analysant les données de comportement des utilisateurs de son application web exposées par les webhooks peut découvrir des points de douleur dans le parcours client et travailler à les résoudre. En même temps, les entreprises peuvent utiliser les webhooks pour découvrir quelles parties de leurs applications web obtiennent le plus d'engagement et en tirer parti.
- Marketing ciblé : De la même manière que les entreprises peuvent améliorer les expériences utilisateur en analysant les données comportementales exposées par les webhooks, les efforts de marketing bénéficient de ces mêmes données et permettent aux entreprises de cibler des publicités à des audiences spécifiques. En adaptant le contenu aux utilisateurs en fonction des données comportementales et démographiques, les marketeurs obtiennent un avantage qui rend l'engagement plus probable. Les entreprises peuvent ensuite continuer à suivre cet engagement, créant une boucle de rétroaction positive qui maximise l'efficacité des campagnes.
Impacts de l'utilisation des webhooks
Les entreprises de développement de logiciels pourraient être négativement impactées par la dépendance aux webhooks :
- Risques de sécurité : Les entreprises utilisant des webhooks doivent prendre des mesures pour s'assurer que leurs connexions ne les exposent pas à des vulnérabilités de sécurité. Les clients de webhook peuvent vérifier les demandes de webhook entrantes en validant la signature de la demande par rapport à celle de l'entreprise hôte. Les utilisateurs peuvent également protéger par mot de passe leur URL de webhook afin que seuls l'hôte et le client y aient accès. Ces pratiques aident à se protéger contre des menaces comme les attaques de spoofing — un type d'attaque dans lequel des agents malveillants falsifient des données pour usurper l'identité d'un hôte de webhook.
- Manque de fonctionnalité : Les webhooks sont plus légers que d'autres API, ce qui en fait un outil attrayant pour les développeurs cherchant à ingérer des données d'autres applications web. Cependant, la nature facile à mettre en œuvre des webhooks ne les rend pas automatiquement une meilleure solution que des API plus robustes. Dans de nombreux cas, faire l'effort supplémentaire de connecter des API bidirectionnelles qui peuvent partager des données lorsque des demandes d'API sont faites servira mieux les développeurs qu'un webhook ne le peut. À un certain point, essayer de forcer les webhooks comme une solution viable coûtera en fait du temps et des ressources aux développeurs.

Adam Crivello
Adam is a research analyst focused on dev software. He started at G2 in July 2019 and leverages his background in comedy writing and coding to provide engaging, informative research content while building his software expertise. In his free time he enjoys cooking, playing video games, writing and performing comedy, and avoiding sports talk.