Webhooks
NOÉ permet l'utilisation de webhooks. Voici comment ils marchent !
Les webhooks ne sont envoyés que lorsqu'un réel utilisateur fait une action depuis l'interface de NOÉ. Si une modification est apportée via les APIs, les webhooks ne seront pas envoyés.
Les webhooks de NOÉ ne sont pas sécurisés : si vous ne vérifiez pas la provenance des données que vous recevez, n'importe qui peut se faire passer pour le serveur de NOÉ et peut compromettre vos données en injectant des modifications non désirées.
Nous recommandons que vous utilisiez un filtrage par adresse IP : en n'acceptant que les requêtes venant de l'adresse IP du serveur NOÉ, vous réduisez considérablement votre vulnérabilité aux attaques.
Vous pouvez connaître l'adresse IP du serveur de NOÉ en allant sur ce site et en recherchant api.noe-app.io.
Typologie d'un Webhook
Quand un webhook est envoyé à votre service, la requête a la forme suivante:
Méthode
POST
Body
{
endpoint: WebhookEndpoint,
action: WebhookAction,
payload: Payload
}
Les sous-types WebhookEndpoint, WebhookAction et Payload sont définis ci-dessous.
Sous-types
Type d'objet : WebhookEndpoint (endpoint
)
L'
endpoint
spécifie quel type d'objet vient d'être modifié : une session, une activité, etc.
Ci-dessous, la correspondance entre les types d'objets dans NOÉ et les clés que l'on trouve dans le webhook.
Type d'objet | WebhookEndpoint (endpoint ) |
---|---|
Catégories | categories |
Espaces | places |
Encadrant·es | stewards |
Activités | activities |
Sessions | sessions |
Type d'action : WebhookAction (action
)
L'
action
spécifie si l'objet vient d'être créé, modifié, ou supprimé.
Ci-dessous, la correspondance entre les types d'actions dans NOÉ et les clés que l'on trouve dans le webhook.
Type d'action | WebhookAction (action ) |
---|---|
Création | create |
Modification | update |
Suppression | delete |
Payload
La
payload
est le contenu du webhook à proprement parler.
La Payload contient :
- l'objet créé ou modifié lorsqu'il s'agit d'une création ou modification,
- l'ID de l'objet supprimé dans le cas d'une suppression.
Pour l'instant, le contenu exact des payloads n'est pas détaillé. Pour anticiper les typages, vous pouvez vous référer
au code directement dans NOÉ.
Dans ce dossier, chaque fichier xxxxx.model.ts
contient un type XxxxxxD
qui décrit sa structure : cela fournit une bonne base de travail même si ce n'est pas encore
une science exacte.