Guide · Architecture

REST API, Webhooks et WebSockets : quand utiliser chacun

La bonne question n'est pas « lequel est le meilleur » — c'est « quelle donnée me faut-il et qui initie la communication ». Avec cette logique, le choix cesse d'être un débat d'architectes et devient de l'arithmétique.

2026-09-14·8 min de lecture·Guía

Les trois flèches

Les trois mécanismes se distinguent par une seule variable : qui initie la communication.

Tout le reste — latence, complexité, montée en charge — découle de cette différence. Passons aux cas, un par un.

REST : pour consulter, gérer et réconcilier

REST est le mécanisme naturel pour tout ce qui ne dépend pas d'un événement en cours : rapports de pointage par plage de dates, audit des accès, gestion des utilisateurs et des identifiants, état des terminaux. Facile à déboguer (un curl et c'est réglé), tolérant aux pannes (on réessaie et on avance), et il n'exige rien de spécial dans votre infrastructure.

Dans API Connect, l'API REST est aussi la source de vérité : même si vous consommez les événements en temps réel, votre réconciliation de paie et vos rapports officiels doivent s'appuyer sur les rapports REST paginés — ainsi vous ne dépendez pas d'un mécanisme en direct qui aurait raté un instant.

Webhooks : pour réagir à ce qui se passe

Quand la logique de votre SaaS doit agir dans l'instant — notifier la réception, marquer le pointage en direct, déclencher une alerte pour un accès hors horaire — interroger en boucle gaspille des appels API et ajoute de la latence inutile. Le webhook inverse la flèche : la plateforme POSTe l'événement vers l'URL que vous configurez.

API Connect permet de configurer l'URL de webhook (avec un token optionnel pour authentifier la livraison) et envoie un POST JSON pour chaque événement :

// Tu endpoint recibe el evento de la plataforma
app.post('/api-connect/eventos', (req, res) => {
  // Verifica el token de entrega antes de procesar
  if (req.headers.authorization !== `Bearer ${process.env.WEBHOOK_TOKEN}`) {
    return res.sendStatus(403);
  }

  const evento = req.body;
  // Ejemplo de payload de marcación:
  // { "Event Type": "Punch", "Event Description": "Access granted – door opened",
  //   "Serial number": "SN...", "Pin": "1234", "Date": "2026-09-14", "Time": "14:30:25" }

  console.log(evento["Pin"], evento["Date"], evento["Time"]);
  res.sendStatus(200); // responde rápido; procesa después
});

Trois règles d'or pour les webhooks : répondez 2xx vite et traitez en asynchrone ; considérez le payload comme une information à valider (ne faites confiance à rien sans vérifier) ; et rappelez-vous que votre endpoint est public — authentifiez chaque livraison avec le token configuré.

WebSockets : pour l'UI en direct, pas pour votre backend

Le websocket brille dans un cas très précis : une interface qui a besoin d'un streaming à haute fréquence — un tableau de bord d'accès en direct qui se met à jour simultanément sur 50 écrans. Le canal persistant évite le coût d'ouvrir une connexion par message et permet de pousser vers tous les abonnés d'un coup.

Mais attention au piège classique : maintenir une connexion WebSocket par utilisateur est une lourde responsabilité opérationnelle (reconnexions, répartition de charge, fan-out). Dans les intégrations matérielles, le schéma sain est : le webhook ou le stream arrive dans votre backend, et votre backend décide comment le pousser vers les navigateurs avec son propre mécanisme temps réel (que beaucoup de SaaS ont déjà).

La table de décision

Ce dont vous avez besoinMécanismeDans API Connect
Rapports de pointage, audit, réconciliationRESTRapports par numéro de série avec plage de dates et pagination
Gérer utilisateurs, identifiants, terminauxRESTEndpoints par numéro de série
Notifier/alerter au moment de l'événementWebhookURL + token configurables ; POST JSON par événement
Déclencher des flux métier (cron, clôtures, alertes)WebhookL'événement arrive sans que vous interrogiez
Tableau de bord en direct pour vos utilisateursWebhook → votre temps réelVotre backend reçoit et distribue à vos UIs
Backend qui consomme déjà du pub/subStreamAbonnement par canal de terminal (punch_{SERIAL})

L'architecture recommandée en une phrase

Le webhook pour l'urgent, REST pour la vérité, et votre propre temps réel pour les écrans. Avec cette combinaison, un accès accordé à 14:30:25 génère l'alerte en quelques secondes (webhook), la paie de fin de mois se réconcilie avec le rapport officiel (REST) et le tableau de bord du superviseur se remplit en direct (votre canal de distribution).

Questions fréquentes

Qu'utiliser pour afficher les pointages en direct ?

Recevez l'événement via webhook dans votre backend et poussez-le à vos utilisateurs via votre propre canal. La distribution vers les navigateurs fait partie de votre produit, pas de l'API.

Ai-je besoin des trois à la fois ?

La combinaison typique en compte deux : le webhook pour réagir et REST pour réconcilier. Le websocket direct uniquement si votre UI exige son propre streaming à haute fréquence.

Et si mon serveur ne répond pas à un webhook ?

API Connect journalise la livraison échouée et l'événement reste disponible dans les rapports REST. La réconciliation ne perd aucun enregistrement même si une livraison échoue.

Testez les deux mécanismes dès aujourd'hui

Configurez votre webhook, consommez les rapports REST et validez le flux complet avec le sandbox. 14 jours gratuits, sans carte.