Skip to main content
API Gateway Blueprint skickar en användningshändelse till Dodo Payments för varje API-anrop som din tjänst hanterar, och en Count-mätare omvandlar dessa händelser till en avgift per anrop för varje kund. Använd den för att spåra användningen av API-endpoints, informera hastighetsbegränsningar och debitera för API-användning. Den levereras i npm-paketet @dodopayments/ingestion-blueprints som trackAPICall(), vilket skickar en händelse per anrop, och createBatch(), som köar händelser vid stora mängder förfrågningar.

Användningsfall

API Gateway Blueprint passar för följande scenarier:

API-as-a-Service

Spåra anrop per kund på en API-plattform och debitera baserat på antalet anrop.

Rate Limiting

Registrera varje kunds anropsvolym för att informera användningsbaserade hastighetsbegränsningar. Blueprint registrerar användning men tillämpar inte begränsningar.

Performance Monitoring

Registrera svarstider och statuskoder med varje händelse, så att felfrekvenser visas bredvid faktureringsdata.

Multi-Tenant SaaS

Debitera kunder för deras API-användning över olika endpoints.
Varje händelse behöver Dodo Payments kund-ID:t för kunden du debiterar, vilket börjar med cus_. Lagra det tillsammans med användarposten när du skapar kunden och skicka det som customerId.

Snabbstart

För att spåra API-anrop installerar du paketet, skapar en mätare och skickar en händelse för varje anrop.
1

Install the SDK

Installera paketet Dodo Payments Ingestion Blueprints:
2

Get Your API Keys

Skapa en Dodo Payments API-nyckel under Developer → API Keys i Dodo Payments-dashboarden och lagra den i miljövariabeln DODO_PAYMENTS_API_KEY. Använd en testlägesnyckel medan du bygger. En testlägesnyckel fungerar endast med test_mode.
3

Create a Meter

I Dodo Payments-dashboarden går du till Products → Meters och klickar på Create Meter. Ange följande fält:
  • Meter Name: ett beskrivande namn, till exempel API Calls.
  • Event Name: api_call eller ett namn som du väljer. Det måste exakt matcha eventName i din kod (skiftlägeskänsligt).
  • Aggregation Type: Count, för att debitera baserat på antalet anrop.
  • Measurement Unit: enheten som visas på fakturor, till exempel calls.
Om du bara vill räkna vissa anrop aktiverar du Enable Event Filtering och lägger till villkor för metadata-nycklar som endpoint, method eller status_code.
4

Track API Calls

Skapa en instans av Ingestion med din API-nyckel och händelsenamn och välj sedan ett mönster: en händelse per anrop, en batch för hög volym eller Express.js-middleware som spårar varje begäran. I middleware kommer req.user från din autentiseringsmiddleware, och dess id måste vara ett Dodo Payments kund-ID. Begäranden utan en inloggad användare skickas med kund-ID:t anonymous, som inte matchar någon kund.

Konfiguration

Ingestion-konfiguration

Skicka dessa alternativ till new Ingestion():
string
obligatorisk
Din Dodo Payments API-nyckel från dashboarden.
string
Miljöläge: test_mode eller live_mode. Standardvärdet är test_mode. Dodo Payments SDK:er använder däremot live_mode som standard, så ange live_mode uttryckligen i produktion.
string
obligatorisk
Händelsenamnet som matchar mätarens Event Name (skiftlägeskänsligt). Varje händelse som denna instans skickar använder det.

Alternativ för spårning av API-anrop

Skicka dessa alternativ till trackAPICall() och batch.add():
string
obligatorisk
Dodo Payments kund-ID:t som ska debiteras för anropet, till exempel cus_123.
object
Valfria metadata om API-anropet, till exempel endpoint, metod, statuskod och svarstid. Varje värde måste vara en sträng, ett tal eller ett booleskt värde. API:et avvisar kapslade objekt, arrayer och värden av typen null.

Batch-konfiguration

createBatch(ingestion, options) köar händelser i minnet och returnerar ett objekt med tre metoder: add() köar en händelse, flush() skickar de köade händelserna och cleanup() skickar dem och stoppar timern. En flush skickar en ingest-begäran per händelse, parallellt.
number
Antalet köade händelser som utlöser en omedelbar flush. Standardvärde: 100.
number
Antalet millisekunder som ska förflyta efter den senaste add() innan batchen flushas. Varje add() startar om timern. Standardvärde: 5000 (5 sekunder).

Bästa praxis

Använd batchning för hög volym: För applikationer med hög trafik använder du createBatch(). batch.add() returnerar omedelbart, så spårning inte lägger till fördröjning i din request handler.
En batch lagrar händelser i minnet tills den flushas, och den försöker inte skicka händelser igen om de misslyckas. En automatisk flush loggar felet med console.error. Ett anrop till flush() eller cleanup() kastar det.
Rensa batchar vid avstängning: Anropa batch.cleanup() när applikationen stängs av, så att väntande händelser flushas i stället för att gå förlorade.
Senast ändrad 26 september 2026