@dodopayments/ingestion-blueprints dưới dạng trackAPICall(), gửi một event cho mỗi lệnh gọi, và createBatch(), xếp hàng các event khi số lượng request lớn.
Trường hợp sử dụng
API Gateway Blueprint phù hợp với các tình huống sau:API-as-a-Service
Theo dõi số lệnh gọi của từng khách hàng trên một nền tảng API và tính phí theo số lượng lệnh gọi.
Rate Limiting
Ghi lại số lượng lệnh gọi của từng khách hàng để hỗ trợ giới hạn tốc độ dựa trên mức sử dụng. Blueprint ghi lại mức sử dụng nhưng không thực thi giới hạn.
Performance Monitoring
Ghi lại thời gian phản hồi và status code cùng mỗi event, để tỷ lệ lỗi nằm cạnh dữ liệu tính phí.
Multi-Tenant SaaS
Tính phí khách hàng theo mức tiêu thụ API trên các endpoint khác nhau.
Mỗi event cần có Dodo Payments customer ID của khách hàng mà bạn tính phí; ID này bắt đầu bằng
cus_. Lưu ID này cùng bản ghi người dùng khi tạo customer và truyền ID đó dưới dạng customerId.Bắt đầu nhanh
Để theo dõi các lệnh gọi API, hãy cài đặt gói, tạo một meter và gửi một event cho mỗi lệnh gọi.1
Install the SDK
Cài đặt gói Dodo Payments Ingestion Blueprints:
2
Get Your API Keys
Tạo Dodo Payments API key trong Developer → API Keys trên Dodo Payments dashboard, rồi lưu key đó vào environment variable
DODO_PAYMENTS_API_KEY. Sử dụng test mode key trong quá trình xây dựng. Test mode key chỉ hoạt động với test_mode.3
Create a Meter
Trong Dodo Payments dashboard, đi đến Products → Meters và nhấp vào Create Meter. Thiết lập các trường sau:
- Meter Name: tên mô tả, chẳng hạn như
API Calls. - Event Name:
api_callhoặc tên do bạn chọn. Tên này phải khớp chính xác vớieventNametrong code của bạn (phân biệt chữ hoa chữ thường). - Aggregation Type: Count, để tính phí theo số lượng lệnh gọi.
- Measurement Unit: đơn vị hiển thị trên hóa đơn, chẳng hạn như
calls.
endpoint, method hoặc status_code.4
Track API Calls
Tạo một instance
Ingestion bằng API key và event name của bạn, sau đó chọn một pattern: một event cho mỗi lệnh gọi, một batch cho lưu lượng lớn hoặc Express.js middleware theo dõi mọi request. Trong middleware, req.user đến từ authentication middleware của bạn và id phải là Dodo Payments customer ID. Các request không có người dùng đã đăng nhập sẽ được gửi với customer ID anonymous, ID này không khớp với customer nào.Cấu hình
Cấu hình Ingestion
Truyền các tùy chọn sau vàonew Ingestion():
string
bắt buộc
Dodo Payments API key của bạn từ dashboard.
string
Chế độ môi trường:
test_mode hoặc live_mode. Mặc định là test_mode. Dodo Payments SDK mặc định sử dụng live_mode, vì vậy hãy đặt rõ ràng live_mode trong production.string
bắt buộc
Event name khớp với Event Name của meter (phân biệt chữ hoa chữ thường). Mọi event mà instance này gửi đều sử dụng event name đó.
Tùy chọn theo dõi lệnh gọi API
Truyền các tùy chọn sau vàotrackAPICall() và batch.add():
string
bắt buộc
Dodo Payments customer ID dùng để tính phí cho lệnh gọi, ví dụ
cus_123.object
Metadata tùy chọn về lệnh gọi API, chẳng hạn như endpoint, method, status code và thời gian phản hồi. Mỗi giá trị phải là string, number hoặc boolean. API từ chối các object lồng nhau, array và giá trị
null.Cấu hình batch
createBatch(ingestion, options) xếp các event trong bộ nhớ và trả về một object có ba method: add() xếp một event vào hàng đợi, flush() gửi các event đang chờ, còn cleanup() gửi chúng và dừng timer. Một lần flush gửi một ingest request cho mỗi event theo cách song song.
number
Số lượng event đang chờ trong hàng đợi để kích hoạt flush ngay lập tức. Mặc định:
100.number
Số mili giây cần chờ sau
add() gần nhất trước khi batch được flush. Mỗi add() sẽ khởi động lại timer. Mặc định: 5000 (5 giây).Thực tiễn tốt nhất
Một batch lưu các event trong bộ nhớ cho đến khi được flush và không retry các event gửi thất bại. Automatic flush ghi lại lỗi bằngconsole.error. Lệnh gọi đến flush() hoặc cleanup() sẽ throw lỗi đó.