@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_calleller ett namn som du väljer. Det måste exakt matchaeventNamei 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.
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 tillnew 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 tilltrackAPICall() 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
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 medconsole.error. Ett anrop till flush() eller cleanup() kastar det.