@dodopayments/ingestion-blueprints sous le nom trackAPICall(), qui envoie un événement par appel, et createBatch(), qui met les événements en file d’attente pour les volumes élevés de requêtes.
Cas d’utilisation
L’API Gateway Blueprint convient aux scénarios suivants :API-as-a-Service
Suivez le nombre d’appels par client sur une plateforme d’API et facturez en fonction du nombre d’appels.
Rate Limiting
Enregistrez le volume d’appels de chaque client afin d’alimenter des limites de débit basées sur l’utilisation. Le blueprint enregistre l’utilisation, mais n’applique pas les limites.
Performance Monitoring
Enregistrez les temps de réponse et les codes d’état avec chaque événement, afin que les taux d’erreur apparaissent à côté des données de facturation.
Multi-Tenant SaaS
Facturez les clients pour leur consommation d’API sur différents points de terminaison.
Chaque événement nécessite l’identifiant client Dodo Payments du client que vous facturez, qui commence par
cus_. Enregistrez-le avec les informations de votre utilisateur lors de la création du client, puis transmettez-le en tant que customerId.Démarrage rapide
Pour suivre les appels d’API, installez le package, créez un compteur et envoyez un événement pour chaque appel.1
Install the SDK
Installez le package Dodo Payments Ingestion Blueprints :
2
Get Your API Keys
Créez une clé API Dodo Payments dans Developer → API Keys du tableau de bord Dodo Payments, puis stockez-la dans la variable d’environnement
DODO_PAYMENTS_API_KEY. Utilisez une clé de mode test pendant le développement. Une clé de mode test fonctionne uniquement avec test_mode.3
Create a Meter
Dans le tableau de bord Dodo Payments, accédez à Products → Meters et cliquez sur Create Meter. Définissez les champs suivants :
- Meter Name : un nom descriptif, tel que
API Calls. - Event Name :
api_call, ou un nom de votre choix. Il doit correspondre exactement àeventNamedans votre code (sensible à la casse). - Aggregation Type : Count, pour facturer en fonction du nombre d’appels.
- Measurement Unit : l’unité affichée sur les factures, telle que
calls.
endpoint, method ou status_code.4
Track API Calls
Créez une instance
Ingestion avec votre clé API et le nom de l’événement, puis choisissez un modèle : un événement par appel, un lot pour les volumes élevés ou un middleware Express.js qui suit chaque requête. Dans le middleware, req.user provient de votre middleware d’authentification, et son id doit être un identifiant client Dodo Payments. Les requêtes sans utilisateur connecté sont envoyées avec l’identifiant client anonymous, qui ne correspond à aucun client.Configuration
Configuration de l’ingestion
Transmettez ces options ànew Ingestion() :
string
requis
Votre clé API Dodo Payments provenant du tableau de bord.
string
Mode d’environnement :
test_mode ou live_mode. La valeur par défaut est test_mode. Les SDK Dodo Payments utilisent par défaut live_mode ; définissez donc explicitement live_mode en production.string
requis
Nom de l’événement correspondant à Event Name de votre compteur (sensible à la casse). Chaque événement envoyé par cette instance l’utilise.
Options de suivi des appels d’API
Transmettez ces options àtrackAPICall() et batch.add() :
string
requis
L’identifiant client Dodo Payments à facturer pour l’appel, par exemple
cus_123.object
Métadonnées facultatives sur l’appel d’API, telles que le point de terminaison, la méthode, le code d’état et le temps de réponse. Chaque valeur doit être une chaîne, un nombre ou une valeur booléenne. L’API rejette les objets imbriqués, les tableaux et les valeurs
null.Configuration des lots
createBatch(ingestion, options) met les événements en file d’attente en mémoire et renvoie un objet comportant trois méthodes : add() met un événement en file d’attente, flush() envoie les événements en file d’attente, et cleanup() les envoie et arrête le minuteur. Une vidange envoie une requête d’ingestion par événement, en parallèle.
number
Nombre d’événements en file d’attente qui déclenche une vidange immédiate. Valeur par défaut :
100.number
Nombre de millisecondes à attendre après le dernier
add() avant la vidange du lot. Chaque add() redémarre le minuteur. Valeur par défaut : 5000 (5 secondes).Bonnes pratiques
Un lot conserve les événements en mémoire jusqu’à sa vidange et ne réessaie pas d’envoyer les événements qui échouent. Une vidange automatique consigne l’erreur avecconsole.error. Un appel à flush() ou cleanup() la lève.