"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Que sont les webhooks et comment les utiliser efficacement

Que sont les webhooks et comment les utiliser efficacement

Publié le 2024-11-07
Parcourir:944

O Que São Webhooks e Como Utilizá-los Eficientemente

Les webhooks sont un outil puissant pour intégrer différents systèmes et envoyer des notifications en temps réel. Ils permettent à une application d'en informer automatiquement une autre lorsqu'un événement se produit, sans avoir besoin de requêtes constantes pour vérifier s'il y a quelque chose de nouveau, comme c'est le cas dans une API traditionnelle. Dans cet article, nous comprendrons comment ils fonctionnent, comment les configurer et nous explorerons un exemple pratique utilisant l'outil Webhook.site, qui facilite le développement et le test de webhooks.


Que sont les webhooks ?

En termes simples, un webhook est un mécanisme qui permet à un service d'envoyer une requête HTTP à une URL spécifique chaque fois qu'un événement se produit. Au lieu de devoir interroger un serveur à plusieurs reprises pour vérifier les modifications (comme cela se produit lors de l'utilisation d'une API), le webhook informe votre application dès que l'événement se produit. Cela permet d'économiser du temps et des ressources, rendant les interactions entre les systèmes plus efficaces.

Un exemple classique d'utilisation de webhooks est celui des services de paiement : lorsqu'une transaction est terminée, le système envoie un webhook à votre application pour vous informer de l'état du paiement. À partir de là, votre application peut traiter ces informations, comme mettre à jour le statut d'une commande, envoyer un reçu par e-mail, entre autres actions.


Comment fonctionnent les webhooks ?

  1. Configuration du Webhook : vous enregistrez une URL pour recevoir des notifications. Cette URL sera appelée chaque fois qu'un événement pertinent se produit sur le service envoyant le webhook.

  2. Événement se produisant : lorsque l'événement configuré (tel qu'une transaction, une mise à jour de données ou la création d'un enregistrement) se produit, le service déclenche une requête HTTP vers l'URL enregistrée.

  3. Traitement des webhooks : votre application reçoit cette demande et traite les informations. Par exemple, vous pouvez mettre à jour les données de la base de données, envoyer une réponse à l'utilisateur ou effectuer toute autre tâche nécessaire.

  4. Réponse à la demande : après avoir traité le webhook, votre application doit répondre avec un code d'état HTTP (tel que 200 OK) pour vous informer que la demande a été reçue et traitée correctement.


Exemple pratique avec Webhook.site

Avant de configurer les webhooks dans une application réelle, il est conseillé de les tester localement ou dans un environnement de développement. Un excellent outil pour cela est Webhook.site. Il fournit une URL temporaire où vous pouvez soumettre des webhooks pour les prévisualiser et les déboguer, vous permettant de voir exactement comment les données sont reçues.

Utilisons Webhook.site pour tester la réception d'un webhook.

  1. Accès à Webhook.site :

    • Accédez à Webhook.site.
    • Le site génère automatiquement une URL unique pour vous (quelque chose comme https://webhook.site/unique-url). Ce sera l'URL que nous utiliserons pour recevoir des notifications.
  2. Configuration de l'envoi de webhooks :

    • Imaginez que vous disposez d'un système qui déclenche des webhooks. Configurez ce système pour envoyer des requêtes à l'URL fournie par Webhook.site.
    • Si vous souhaitez tester localement, vous pouvez simuler l'envoi de webhooks à l'aide d'outils tels que cURL ou Postman, en envoyant des requêtes à l'URL générée.

Maintenant, implémentons du code Node.js qui simule l'envoi d'un webhook à cette URL.


Exemple d'implémentation de Webhook dans Node.js

Voici un exemple de configuration d'un point de terminaison pour recevoir des webhooks et d'envoi d'un webhook à l'aide d'axios (ou de toute autre bibliothèque HTTP) :

const express = require('express');
const axios = require('axios');
const app = express();

// Middleware para processar o body das requisições como JSON
app.use(express.json());

// Endpoint que recebe os webhooks
app.post('/webhook-receiver', (req, res) => {
  const event = req.body;

  // Processar o evento (aqui você adiciona a lógica que desejar)
  console.log('Webhook recebido:', event);

  // Retornar um status de sucesso para o serviço que enviou o webhook
  res.status(200).send('Evento processado com sucesso');
});

// Simulando o envio de um webhook para o Webhook.site
const webhookURL = 'https://webhook.site/unique-url';  // Substitua pela sua URL do Webhook.site

const sendWebhook = async () => {
  try {
    const payload = {
      event: 'payment_completed',
      data: {
        orderId: '12345',
        amount: 100.0,
        currency: 'USD'
      }
    };

    const response = await axios.post(webhookURL, payload);
    console.log('Webhook enviado com sucesso:', response.status);
  } catch (error) {
    console.error('Erro ao enviar webhook:', error);
  }
};

app.listen(3000, () => {
  console.log('Servidor rodando na porta 3000');

  // Enviar o webhook após o servidor iniciar
  sendWebhook();
});

Dans cet exemple :

  • Nous avons créé un point de terminaison /webhook-receiver qui simule la réception d'un webhook.
  • Nous utilisons axios pour simuler l'envoi d'un webhook à Webhook.site, en transmettant une charge utile avec les données d'un paiement fictif.
  • Webhook.site reçoit la notification et affiche le contenu de la demande sur le panneau.

Bonnes pratiques de sécurité dans les webhooks

Étant donné que les webhooks impliquent l'envoi de données directement vers une URL, il est essentiel de prendre certaines précautions de sécurité :

  1. Validation d'origine : Vérifiez si la requête provient réellement du service attendu. De nombreux services proposent une signature cryptographique (par exemple, en utilisant HMAC) que vous pouvez utiliser pour valider l'authenticité de la demande.

  2. Utiliser HTTPS : configurez toujours vos points de terminaison de webhook pour utiliser HTTPS, en vous assurant que les communications entre le service et votre application sont cryptées.

  3. Authentification : en plus du HTTPS, certaines applications nécessitent que les demandes de webhook incluent un jeton ou une clé d'authentification comme couche de sécurité supplémentaire.

  4. Limitation de débit : implémentez des limites sur le nombre de requêtes que votre serveur peut traiter au cours d'une période donnée, empêchant ainsi votre application d'être surchargée avec trop de requêtes dans un court laps de temps.


Webhooks contre. Apis

Les gens confondent souvent les webhooks avec les API. Voici la principale différence :

  • API : elles sont actives. Votre application envoie une requête à un serveur et reçoit des données en réponse. Vous devez « rechercher » les informations.
  • Webhooks : ils sont passifs. Le serveur envoie automatiquement des informations à votre application lorsqu'un événement se produit. Vous « recevez » les informations sans avoir à les demander.

Les webhooks sont particulièrement utiles dans les scénarios où vous avez besoin de notifications en temps réel, comme dans les systèmes de paiement, les notifications d'événements et les intégrations entre différents services.


Conclusion

Les webhooks sont un moyen simple et efficace de permettre à différents systèmes de communiquer automatiquement en temps réel. À l'aide d'outils comme Webhook.site, vous pouvez tester et déboguer vos webhooks avant de les intégrer en production. De plus, le respect de bonnes pratiques de sécurité garantit que vos points de terminaison sont protégés contre tout accès indésirable.

Si vous développez une application moderne et devez intégrer différents services, les webhooks sont une excellente solution pour automatiser la communication entre eux.


Si vous avez des questions ou des expériences intéressantes avec les webhooks, partagez-les dans les commentaires !

Déclaration de sortie Cet article est reproduit sur : https://dev.to/lucaspereiradesouzat/o-que-sao-webhooks-e-como-utiliza-los-eficientemente-1iel?1 En cas de violation, veuillez contacter [email protected] pour le supprimer
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3