Services
Webhooks
#Vue d’ensemble
Les webhooks automatisent les réactions aux événements pris en charge par le compte.
#Recevoir les événements de manière sûre
Un webhook associe une URL HTTPS et les événements disponibles dans le formulaire/API. Le secret retourné à la création doit être conservé côté receveur et ne doit jamais être journalisé.
Le receveur doit répondre rapidement, traiter de manière idempotente et déplacer le travail lourd dans sa propre file. Validez la méthode de signature réellement fournie avant de faire confiance au payload; si aucune signature n’est disponible, utilisez une URL secrète et des contrôles réseau complémentaires.
#Mettre un receveur en production
Créez un endpoint HTTPS dédié.
Enregistrez le webhook et son secret une seule fois.
Vérifiez l’événement et refusez les payloads invalides.
Dédupliquez, accusez réception rapidement et surveillez les échecs.
#Permissions par rôle
| Action | owner | admin | member | viewer |
|---|---|---|---|---|
| Lister les destinations et événements | Lecture | Lecture | Lecture | Lecture |
| Créer une destination et son secret | Autorisé | Autorisé | Non | Non |
| Supprimer une destination | Autorisé | Autorisé | Non | Non |
#Opérations REST clientes
https://api.cdn.pizzaTélécharger OpenAPI 3.1Webhooks 3
/api/webhooks#Lister les webhooks
Exemple
curl --request GET \
--url 'https://api.cdn.pizza/api/webhooks' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
/api/webhooks#Créer un webhook
Champs de requête
| Champ | Type | Requis | Description |
|---|---|---|---|
url | string | oui | URL publique HTTP(S); HTTPS est recommandé.format: uri · length: 0…500 |
events | array<string> | oui | Événements abonnés.items: file.uploaded | file.deleted | domain.created | zone.created | zone.updated | zone.deleted | cache.purged | node.online | node.offline | node.deployed | billing.updated | invoice.paid | mail.accepted | mail.rejected | mail.deferred |
secret | string | non | Secret de signature choisi par le client.length: 0…255 |
Exemple
curl --request POST \
--url 'https://api.cdn.pizza/api/webhooks' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"url":"https://hooks.example.com/cdn-pizza","events":["file.uploaded","file.deleted"]}'
/api/webhooks/{id}#Supprimer un webhook
Champs de requête
| Champ | Type | Requis | Description |
|---|---|---|---|
id | integer | oui | Identifiant du webhook. |
Exemple
curl --request DELETE \
--url 'https://api.cdn.pizza/api/webhooks/WEBHOOK_ID' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'