Publié le
19
September
2022
Mise à jour le
8
minutes

API et Webhook : C’est quoi la différence ?

Dimitri
Nicolas

API et Webhook sont deux termes très employés dans le développement web et qui font leur chemin dans le NoCode maintenant. Définissons-les puis voyons leurs points communs et leur usage classique.

Qu’est-ce qu’une API ?

L’acronyme API signifie Application Programming Interface. Mais avant de comprendre son usage et le pourquoi de son existence, il faut revenir un peu sur la notion d’architecture Client - Serveur.

Pour que tu puisses naviguer sur internet, il te faut un navigateur. Ce navigateur exécute du code pour t’afficher des éléments à l’écran (jusque-là tu vas me dire : ça, je le sais déjà… ). Et pour aller chercher ses éléments il doit souvent aller les demander à un serveur, le serveur où est hébergé ton site web. La façon dont le navigateur fait des appels au serveur a son importance. Il faut bien que les 2 se comprennent ! Si ton navigateur parle une langue et que ton serveur en parle une autre, impossible de communiquer.

Les APIs sont là pour mettre à plat cette façon de communiquer, propre à chaque serveur. Ton navigateur construit donc une requête HTTP avec des données attachées, et envoie le tout sur un endpoint (c’est-à-dire une URL bien précise) au serveur.

Du coup, tu peux maintenant facilement imaginer que ton navigateur va aller faire des requêtes sur pleins d’APIs différentes et que ton serveur va pouvoir lui aussi faire des requêtes à d’autres serveurs pour dérouler une logique métier.

Chaque serveur peut être appelé seulement s’il l’autorise et selon les règles qu’il définit. On dit que le serveur “ouvre” ou “expose” une API, un chemin vers lui-même pour lui demander des choses. Et pour pouvoir cadrer l’ensemble des pratiques de comment effectuer une requête correctement, on a inventé les API dites REST. Tu peux aller jeter un œil à Wikipedia sur le sujet, c’est un bon début.

Un exemple d’API

Exemple d'API de la NASA disponible en ligne
Voici un exemple d’un API de la NASA 🚀

Le serveur de la NASA accepte des requêtes d’un certain format. L’URL suivante https://api.nasa.gov/neo/rest/v1/feed?start_date=START_DATE&end_date=END_DATE&api_key=API_KEY permet de récupérer la liste des astéroïdes proches de la terre entre deux dates.

On remarque que la requête est de type GET, signifiant que l’appel souhaite récupérer des informations. Il existe également d’autres types de requêtes :

  • POST pour mettre à jour une ressource dont on connaît l’identifiant unique ou bien créer une ressource et recevoir son identifiant unique en retour.
  • PUT pour mettre à jour ou créer une ressource dont on connaît l’identifiant unique.
  • DELETE pour supprimer une ressource dont on connaît l’identifiant unique.

Pour utiliser l’API de la NASA, il te faudra demander une clé API auparavant pour faire cet appel, indiquant au serveur que tu as le droit de faire cette demande au moment de l’exécution de la requête. Amuse-toi un peu avec ces API, elles sont très sympas. 😉

Pour t’entraîner, voici un outil bien pratique qui permet de faire des requêtes facilement : Postman.

Autre exemple d'API de la NASA
Pour retrouver l’IP exacte d’une adresse

Qu’est-ce qu’un Webhook ?

Le terme a été inventé en 2007 par un certain Jeff Lindsay et signifie “point d’ancrage web”. Web pour “web” (ok, pas trop difficile...) et “Hook” pour point d’ancrage.

En fait, il faut le voir comme l’ouverture d’une API, sur une URL spécifique, par un serveur permettant d’exécuter une action bien précise lorsqu’appelé. Le serveur autorise un Hook, un ancrage sur lui-même. Le terme Hook prend tout son sens dans l’usage que l’on va faire de cette URL. Le concept est de “trigger”, c’est-à-dire d’exécuter la requête du serveur lorsqu’un évènement survient.

Un exemple de Webhook

Je souhaite qu’un canal de notre serveur Discord soit au courant du remplissage d’un formulaire Typeform par un prospect. J’ai deux options :

  • Soit Discord interroge Typeform régulièrement pour savoir si un prospect à rempli un nouveau formulaire.
  • Soit Typeform envoie directement l’information à Discord lorsque cela se produit.

Je te laisse deviner la solution la plus efficace ? Eh bien, cette solution c’est ce qu’on appelle utiliser un Webhook. Dans ce cas, c’est un Webhook de Discord. Il est paramétré par Discord pour n’effectuer qu’une action : poster un message dans un canal lorsque l’URL est appelé avec le message en paramètre.

Exemple de Webhook intégré dans Zapier

Les Webhook sont donc des requêtes de type POST et le format envoyé est souvent de type Json.

Voilà ! J’espère que le lien entre API et Webhook est plus clair maintenant. 😉

Partager
Besoin de conseils ?
Dimitri te propose 30 minutes de call gratuit.
Réserver un call

La newsletter SuperForge

1 fois par mois, des interviews, des infos sur l’univers NoCode et sur l’entrepreneuriat. No spam, c’est promis.👌🏻