@dodopayments/ingestion-blueprints sebagai trackAPICall(), yang mengirimkan satu event per panggilan, dan createBatch(), yang mengantrekan event untuk volume request yang tinggi.
Kasus Penggunaan
API Gateway Blueprint sesuai untuk skenario berikut:API-as-a-Service
Lacak panggilan per pelanggan pada platform API dan kenakan biaya berdasarkan jumlah panggilan.
Rate Limiting
Catat volume panggilan setiap pelanggan untuk memberikan informasi bagi batas rate berbasis penggunaan. Blueprint ini mencatat penggunaan, tetapi tidak menerapkan batas.
Performance Monitoring
Catat waktu respons dan status codes pada setiap event, sehingga tingkat error berada di samping data penagihan.
Multi-Tenant SaaS
Tagih pelanggan atas konsumsi API mereka di berbagai endpoint.
Setiap event memerlukan customer ID Dodo Payments dari pelanggan yang Anda tagih, yang dimulai dengan
cus_. Simpan ID tersebut bersama record pengguna saat membuat pelanggan, lalu teruskan sebagai customerId.Mulai Cepat
Untuk melacak panggilan API, instal package, buat meter, lalu kirim event untuk setiap panggilan.1
Install the SDK
Instal package Dodo Payments Ingestion Blueprints:
2
Get Your API Keys
Buat API key Dodo Payments di Developer → API Keys dalam dashboard Dodo Payments, lalu simpan di environment variable
DODO_PAYMENTS_API_KEY. Gunakan test mode key selama proses pengembangan. Test mode key hanya berfungsi dengan test_mode.3
Create a Meter
Dalam dashboard Dodo Payments, buka Products → Meters, lalu klik Create Meter. Atur field berikut:
- Meter Name: nama deskriptif, seperti
API Calls. - Event Name:
api_call, atau nama yang Anda pilih. Nama tersebut harus sama persis denganeventNamedalam kode Anda (case-sensitive). - Aggregation Type: Count, untuk menagih berdasarkan jumlah panggilan.
- Measurement Unit: unit yang ditampilkan pada invoice, seperti
calls.
endpoint, method, atau status_code.4
Track API Calls
Buat satu instance
Ingestion dengan API key dan event name Anda, lalu pilih pattern: satu event per panggilan, batch untuk volume tinggi, atau middleware Express.js yang melacak setiap request. Dalam middleware, req.user berasal dari authentication middleware Anda, dan id harus berupa customer ID Dodo Payments. Request tanpa pengguna yang sudah sign in dikirim dengan customer ID anonymous, yang tidak cocok dengan pelanggan mana pun.Konfigurasi
Konfigurasi Ingestion
Teruskan opsi berikut kenew Ingestion():
string
wajib
API key Dodo Payments Anda dari dashboard.
string
Mode environment:
test_mode atau live_mode. Default-nya adalah test_mode. Sebaliknya, Dodo Payments SDK menggunakan default live_mode, jadi tetapkan live_mode secara eksplisit di production.string
wajib
Event name yang cocok dengan Event Name meter Anda (case-sensitive). Setiap event yang dikirim instance ini akan menggunakan nama tersebut.
Opsi Pelacakan Panggilan API
Teruskan opsi berikut ketrackAPICall() dan batch.add():
string
wajib
Customer ID Dodo Payments yang akan ditagih untuk panggilan tersebut, misalnya
cus_123.object
Metadata opsional tentang panggilan API, seperti endpoint, method, status code, dan waktu respons. Setiap nilai harus berupa string, number, atau boolean. API menolak nested objects, arrays, dan nilai
null.Konfigurasi Batch
createBatch(ingestion, options) mengantrekan event di memory dan mengembalikan object dengan tiga method: add() mengantrekan event, flush() mengirim event yang diantrekan, dan cleanup() mengirim event tersebut serta menghentikan timer. Flush mengirimkan satu ingest request per event secara paralel.
number
Jumlah event yang diantrekan yang memicu flush segera. Default:
100.number
Jumlah milidetik untuk menunggu setelah
add() terakhir sebelum batch melakukan flush. Setiap add() akan memulai ulang timer. Default: 5000 (5 detik).Praktik Terbaik
Batch menyimpan event di memory hingga melakukan flush, dan tidak mencoba ulang event yang gagal dikirim. Flush otomatis mencatat error denganconsole.error. Pemanggilan flush() atau cleanup() akan melemparnya.