J’ai récemment fait du camping et, comme je n’avais pas de réseau, les capacités de mon smartphone étaient plutôt limitées. Mon application météo n’indiquait aucune donnée, je ne pouvais pas voir ma position sur Apple Maps et je ne pouvais pas envoyer ou recevoir de messages directs. Un cauchemar de l’ère numérique.

Imaginez maintenant que vous disposiez d’une connexion internet et d’un téléphone portable parfaits, mais que vous soyez confronté exactement au même problème : c’est dire à quel point notre technologie serait inutile sans les interfaces de programmation d’applications (API) et les webhooks. Les deux sont essentiels pour la communication entre les logiciels, mais quelle est la différence entre les webhooks et les API ? Voici l’essentiel :

  • Les API ouvrent la voie à une communication en va-et-vient entre les applications logicielles par le biais de requêtes – l’application A demande des informations à l’application B, et l’application B décide d’envoyer ou non les informations.
  • Un webhook est un type d’API événementielle. Au lieu d’envoyer des informations en réponse à la demande d’une autre application, un webhook envoie des informations ou exécute une fonction spécifique en réponse à un déclencheur, tel que l’heure, un clic sur un bouton ou la réception d’un formulaire. Comme c’est l’application qui envoie les données qui initie le transfert, les webhooks sont souvent appelés « API inversées ».

Dans ce guide, je vais démystifier les webhooks et les API afin que vous puissiez faire parler vos applications et envoyer des données automatiquement de l’un à l’autre.

Quand utiliser un webhook ?

Les webhooks ne nécessitent pas beaucoup de « conversation » – les données circulent dans une seule direction au lieu de deux. Il s’agit simplement de points d’extrémité d’API spécifiés par un développeur, ce qui les rend assez simples par rapport aux API complètes.

Comme ils sont programmés pour ne pas avoir accès à autant d’informations que les systèmes d’API complets, leur utilisation est plutôt limitée. Toutefois, elles s’avèrent utiles lorsqu’un utilisateur souhaite exécuter une fonction d’application sans avoir à ouvrir l’application. Voici quelques exemples de cas où l’utilisation d’un webhook serait la plus judicieuse :

  • Mise à jour du statut de l’abonnement de l’utilisateur dans votre système de gestion de la relation client (CRM) lorsqu’un utilisateur annule son abonnement
  • Envoi de rappels automatiques pour les réunions cinq minutes avant qu’elles ne commencent
  • Envoi de notifications par courrier électronique pour informer les utilisateurs qui tentent de contacter un employé de l’INPI de la date de retour
  • Notification à un utilisateur qui possède des actions d’une société lorsque le cours de l’action baisse de 5 % en un jour

Lorsqu’une demande de webhook n’est pas formatée correctement, vous n’obtiendrez pas de réponse détaillée vous expliquant pourquoi votre fonction a échoué – vous obtiendrez simplement un code d’état tel que 200 ou 404. C’est pourquoi il est important de tester votre webhook (et de le vérifier régulièrement) pour vous assurer qu’il fonctionne correctement.

Par exemple, vous souhaitez peut-être qu’un webhook ajoute le nom d’un utilisateur à votre CRM, mais le webhook peut être configuré pour n’accepter qu’un format de nom spécifique (par exemple, seulement deux séries de caractères – « prénom » et « nom de famille »). Dans ce cas, tout utilisateur qui saisit un second prénom ou qui a deux prénoms (par exemple, « George Michael Smith ») confondra le webhook et ne sera pas ajouté au CRM. Une nouvelle vérification de la configuration du webhook peut permettre d’identifier ce problème et d’éviter la perte de données.

Exemples de configuration de webhook

FedEx Supply Chain

FedEx Supply Chain est un fournisseur de services logistiques et une filiale de FedEx spécialisée dans l’entreposage et la distribution. Vous pouvez générer une URL webhook dans l’application pour suivre les événements qui s’y produisent. Ainsi, vous n’avez pas besoin de faire des appels fréquents pour obtenir de nouvelles données – vous obtenez simplement les mises à jour au fur et à mesure qu’elles se produisent. Par exemple, un webhook peut être programmé pour envoyer des mises à jour lorsqu’un produit passe par les différentes étapes du processus de distribution.

Mailchimp

Avec un compte transactionnel Mailchimp payant, vous pouvez utiliser des webhooks pour envoyer des données de courrier électronique à vos applications et les faire réagir comme vous le souhaitez. Par exemple, si un destinataire clique sur un lien dans un e-mail marketing, vous pouvez demander à Mailchimp d’envoyer ces données à une autre application que vous utilisez pour segmenter votre public et suivre son comportement.

Quand utiliser une API ?

Les API assurent la communication entre vos applications dans un format lisible par une machine (généralement JSON ou XML). Elles constituent donc la meilleure solution lorsque vous travaillez avec des données dont vous savez qu’elles changent constamment ou qu’elles sont mises à jour. Pensez aux données météorologiques et géolocalisées – il y a presque toujours quelque chose de nouveau à charger.

La nature communicative des API leur permet également d’effectuer des tâches que les webhooks seuls ne peuvent pas réaliser. Voici quelques exemples courants où une API serait préférable à un webhook :

  • Suivi des expéditions pour une entreprise de commerce électronique
  • Extraction de données sur le trafic pour une application de cartographie
  • Utilisation d’une application MFA tierce pour se connecter au portail de l’entreprise

Exemples d’API en action

PayPal

Grâce aux API, PayPal permet à ses clients d’effectuer toute une série de transactions, notamment des paiements, des abonnements, des factures et bien plus encore. Il est logique que PayPal s’appuie sur des API. Il s’agit d’un portefeuille numérique, ce qui signifie qu’il doit communiquer avec sa ou ses banques, ainsi qu’avec de nombreux systèmes de points de vente, afin d’effectuer des transactions.

Spotify

Comme toute autre application de diffusion de musique en continu, Spotify s’appuie sur des API pour récupérer des données musicales et gérer les listes de lecture des utilisateurs. Lorsqu’un utilisateur recherche un artiste, un album ou un titre spécifique, Spotify affiche les résultats de sa recherche via une API. La plateforme extrait également des données de l’historique d’écoute de l’utilisateur pour organiser des mélanges et des listes de lecture spécialement conçus pour lui.

Uber

Uber

Il n’est pas surprenant qu’Uber utilise des API pour fonctionner. De nombreuses communications doivent avoir lieu entre les bases de données, les utilisateurs et les logiciels pour que l’application puisse identifier l'emplacement de l’utilisateur et du chauffeur, collecter les données relatives au trajet et à l’évaluation et partager ces données avec les deux parties.

Questions fréquemment posées : Webhook vs. API

Quelle est la principale différence entre un webhook et une API ?

Les API sont manuelles – il faut leur demander d’extraire ou de modifier des données. Les webhooks envoient des données automatiquement en réponse à un événement spécifique, sans aucune demande de la part d’un autre logiciel.

Les webhooks sont un sous-ensemble des API et sont donc beaucoup plus limités que ces dernières – ils ne peuvent envoyer que des informations. Les API sont plus polyvalentes. Ainsi, lorsque vous, en tant qu’utilisateur, essayez d’apprendre ou de modifier quelque chose dans un autre logiciel, l’API vérifie si vous avez le droit de le faire et approuve ou refuse la demande.

Un webhook est-il simplement une API REST ?

REST est un ensemble de règles ou de restrictions architecturales imposées aux API, tandis qu’un webhook est un sous-ensemble d’une API. Étant donné qu’une API REST, malgré ses restrictions, exige qu’un utilisateur demande des données pour que ces données soient envoyées, elle n’est pas identique à un webhook, qui ne nécessite pas de demande de données.

Quelle est la meilleure solution ?

Ni les webhooks ni les API ne sont meilleurs l’un que l’autre – ils sont simplement utilisés dans des circonstances différentes. Les API sont certainement plus polyvalentes que les webhooks, tandis que les webhooks sont plus simples et plus légers.

Webhooks et API : le bilan

Les webhooks et les API sont largement utilisés dans tous les logiciels que nous utilisons au quotidien, et ils sont tellement similaires que leur utilisation individuelle peut prêter à confusion. Étant donné qu’un webhook n’est qu’un type spécifique d’API, la confusion est logique.

En résumé, les webhooks permettent un partage léger des données entre les logiciels lorsqu’une action spécifique a lieu, tandis que les API nécessitent une entrée utilisateur à un bout pour demander ou modifier des données à l’autre bout.

Si vous souhaitez envoyer une notification ou mettre à jour des informations dès qu’un certain critère est rempli, évitez les tracas d’une API – mettez simplement en œuvre un simple webhook. Si vous traitez des données flottantes ou souhaitez modifier des données au lieu d’envoyer simplement une notification, vous devrez probablement mettre en œuvre une API.

Pour choisir entre les deux, la question la plus importante à se poser est de savoir si les données auxquelles vous souhaitez accéder sont constamment mises à jour. Si c’est le cas, une API aura probablement plus de sens qu’un webhook. Si ce n’est pas le cas, envisagez de mettre en œuvre un webhook.

En fin de compte, il n’est pas nécessaire de lancer un débat sur les webhooks et les API – les deux sont nécessaires pour que les applications que nous aimons fonctionnent.