Retour aux articles

L'agence

WanadevStudio

PHP Tour : retour de conférence sur les webhooks !

Wanadev s'est rendue au PHP Tour de Clermont-Ferrand les 23 et 24 mai 2016. En bons passionnés, nous avons décidé de faire quelques compte-rendus de ce que nous avons vu. Et nous avons vu des Webhook !

Pour ce retour, j'ai décidé de vous transcrire une synthèse de la présentation de Guillaume Potier qui était venu pour représenter son entreprise Wisembly et nous parler de WebHook.

Qu'est-ce qu'un webhook ?

Un webhook est un callback que l'on déclare sur une plateforme et qui appelle un server endpoint (comprenez une URL) lorsqu'un événement est déclenché.

Où trouve-t-on des webhooks ?

Les webhooks sont présents à peu près partout. Guillaume a souvent pris l'exemple de GitHub et de Google qui en utilisent beaucoup. Pour le premier, cela permet par exemple de communiquer avec des services comme Travis et Circle CI.

Un exemple d'utilisation ?

Vous déclarez un webhook chez GitHub via l'interface qu'ils ont mis à disposition. Vous indiquez que vous souhaitez être informé lorsqu'une Pull Request est envoyée, et que l'URL http://www.afup.org soit appelée. Et c'est à peu près tout ce qu'il faut savoir !

Mais comment je m'en sers de ce webhook ?

Quand les webhooks sont exécutés, ils appellent le server endpoint avec une méthode de type POST (dans la majorité des cas). À ce moment, le contexte est envoyé. Par exemple, dans le cas de GitHub, quand une Pull Request est envoyée, le contexte injecté en POST reprendra le nom du repository, son owner, le numéro de la PR, son URL et d'autres informations permettant de donner le contexte.

Voici la documentation du fonctionnement d'un Webhook à la sauce GitHub.

Ces informations doivent vous permettre de traiter l'événement selon vos cas d'utilisation.

Quel intérêt d'utiliser un webhook plutôt qu'un CRON associé à une requête sur une API ?

Les webhooks sont à privilégier lorsqu'on souhaite être informé du changement d'un état. L'avantage est que c'est le service tiers qui fait l'effort de vous prévenir.

Dans le cas d'un script contenant un appel à une API tierce (où on retrouverait les mêmes informations), c'est que notre script va être appelé régulièrement alors que ce n'est pas toujours nécessaire. Cela va entraîner un stress permanent de la machine distante (Flood).

Comment implémenter un service de webhook sur sa plateforme ?

On a tout simplement besoin de pouvoir définir des règles dans lesquelles on va donner une payload URL qui n'est autre que notre server endpoint, une liste d'événements qui vont entraîner l'exécution de notre webhook et éventuellement une secret key pour signer le contenu envoyé et attester que le service à l'origine de l'appel est bien celui attendu.

Au niveau du code métier, Wisembly prône l'utilisation d'un event dispatcher pour facilement lever des événements dans le code lorsque les webhooks doivent être exécutés.

L'event dispatcher envoie alors un message broker de type RabbitMQ. Un « consummer » écoute le RabbitMQ de manière asynchrone et réalise les appels vers les endpoints enregistrés pour l'événement levé.

Comment gérer ses webhooks ?

Guillaume a également abordé la question « Comment gérer ses webhooks ? ». Sa réponse a été simplement de miser sur une documentation complète, détaillée et à jour. What else ?

Retrouvez directement le support de présentation de Guillaume ici :

Commentaires

Il n'y a actuellement aucun commentaire. Soyez le premier !

  • Tests automatiques fonctionnels d’applications 2D/3D

    Il y a 9 mois

    Comme nous le disions dans cet article, l’automatisation des tests dans le développement logiciel est indispensable : dès lors qu’une application commence à avoir un minimum d’importance, les tests automatiques permettront de gagner énormément de temps en évitant de reproduire ad vitam æternam les mêmes tests manuels, et éviteront beaucoup de régressions. Dans cet article, nous allons présenter différents types de tests automatiques dans le cadre plus spécifique d’applications 2D/3D, puisque c’est ce que nous faisons ! Cela va du test basique qui clique sur 3 boutons aux tests de plusieurs minutes reproduisant les actions comme un véritable utilisateur. Accrochez-vous, c’est parti !

  • Configurateur web à l'abonnement : forces et faiblesses

    Il y a 10 mois

    Aujourd’hui, si vous cherchez à mettre en place un configurateur sur votre site, deux grandes possibilités s'offrent à vous : les solutions par abonnement (du type SaaS) ou le développement sur mesure. Au premier abord, les solutions semblent proches, mais les enjeux sur le long terme eux, sont bien différents.

  • Les frameworks front, tous les mêmes !
    Méthodologie

    Il y a 11 mois

    C'est une phrase que j'ai osé sortir un jour dans la salle de pause de Wanadev. Je ne sais plus exactement avec quel collègue je discutais, j’essayais de le rassurer, il possédait déjà une certaine expérience avec React et allait devoir, en arrivant sur le projet sur lequel je travaille, se mettre à Vue.
    Il a malheureusement fallu qu'un autre collègue de passage nous entende pour ne pas trouver la conversation inintéressante et suggérer que j'en fasse un petit talk pour nos réu du lundi. Et, de fil en aiguille, me voilà en train d'en faire un article de blog. Comme quoi, note pour moi-même, il faut toujours se méfier des discussions dans les salles de pause.

  • [NOVEMBRE 2021] C'est la gazette de Wanadev !
    Méthodologie

    Il y a 1 an

    Retrouvez ici les informations et actus du mois de novembre de l'Agence! Au programme de cette édition : découvrez le configurateur de fenêtre développé pour Caseo, recontrez François Deleglise, notre directeur communication et un nouvel espace de jeu pour les professionnels du loisir en VR. Bonne lecture !

  • Un peu d'ingérence dans votre infogérance ?
    Méthodologie

    Il y a 2 ans

    Même si les impacts sont difficiles à mesurer, on peut dire qu’il a eu un avant et un après incident OVH. Sans épiloguer sur l'incendie du 5 mars 2021 dernier, un petit vent de panique a soufflé sur les milliers de clients découvrant les problématiques de sécurisation des données. Les réactions à chaud d'une partie des utilisateurs (touchés ou non) montrent la méconnaissance et l'incompréhension qui existent dans les offres d'hébergement. Qui est responsable ? Qui fait quoi ? Comment vérifier mon offre ? Voici quelques clés de compréhension.

  • Améliorer la qualité avec les tests et la review

    Il y a 2 ans

    L’importance des tests et de la revue de code dans le cadre du développement logiciel est parfois négligée ou passée au second plan. Cet article a pour but de montrer que les tests logiciels constituent une étape cruciale qu’il faut considérer avec beaucoup de rigueur.