← Retour à la marketplace
🔌

Connecteurs API

Webhooks entrants/sortants et connecteurs vers des services tiers.

IntégrationMoyen~5 joursv1.1.0

Module de connecteurs API avec gestion des webhooks entrants (réception et traitement), webhooks sortants (notifications vers des URLs tierces), logs d'appels et retry automatique en cas d'échec.

webhooksapiconnectorsintegrationhttp

Dépendances requises :

📋 Schéma Prisma

// === Module Connecteurs API ===

enum WebhookStatus {
  ACTIVE
  INACTIVE
}

enum DeliveryStatus {
  PENDING
  SUCCESS
  FAILED
  RETRYING
}

model OutgoingWebhook {
  id          String        @id @default(cuid())
  name        String
  url         String
  secret      String
  events      String[]      // ["invoice.created", "contact.updated"]
  status      WebhookStatus @default(ACTIVE)
  createdAt   DateTime      @default(now())
  deliveries  WebhookDelivery[]

  @@map("outgoing_webhooks")
}

model WebhookDelivery {
  id             String          @id @default(cuid())
  webhookId      String
  webhook        OutgoingWebhook @relation(fields: [webhookId], references: [id])
  event          String
  payload        Json
  status         DeliveryStatus  @default(PENDING)
  statusCode     Int?
  response       String?
  attempts       Int             @default(0)
  nextRetryAt    DateTime?
  deliveredAt    DateTime?
  createdAt      DateTime        @default(now())

  @@map("webhook_deliveries")
}

🔌 Endpoints API

## API Connecteurs

GET  /api/webhooks               # Liste des webhooks configurés
POST /api/webhooks               # Créer un webhook
PUT  /api/webhooks/:id           # Modifier
DELETE /api/webhooks/:id         # Supprimer
POST /api/webhooks/:id/test      # Envoyer un event de test
GET  /api/webhooks/:id/deliveries # Historique des livraisons

POST /api/incoming/:slug         # Endpoint de réception (public, vérifié par HMAC)

🛠️ Guide d'implémentation

## Implémentation Connecteurs API

### Étape 1 — Webhooks sortants
Créer src/lib/webhooks/dispatcher.ts :
- Construire le payload avec signature HMAC-SHA256
- Envoyer via fetch avec timeout
- Logger dans WebhookDelivery
- Retry exponentiel (3 tentatives max)

### Étape 2 — Déclenchement
Émettre des événements depuis les modules métier :
```typescript
await dispatchWebhook("invoice.created", { id, amount, ... })
```

### Étape 3 — Webhooks entrants
Endpoint /api/incoming/:slug :
- Vérifier la signature HMAC du fournisseur
- Traiter le payload selon le type d'event

Prêt à installer ce module ?

Ajoutez-le à un projet existant depuis la page modules du projet.

Voir les projets →