Hỗ trợ Idempotency API
API hỗ trợ tính năng idempotency để đảm bảo thực hiện lại các yêu cầu mà không gây ra việc thực hiện hai lần cùng một request. Điều này hữu ích khi API bị gián đoạn trong quá trình truyền và bạn không nhận được phản hồi.
Kích hoạt Idempotency
Để gửi một yêu cầu để xử lý idempotent, hãy gửi một trường Idempotency-Key:<value>
trong Header
.
<key>
là một định danh duy nhất cho mỗi request tối đa 64 ký tự. Chúng tôi đề xuất sử dụng UUID. Nếu bạn không nhận được phản hồi (ví dụ, trong trường hợp xảy ra timeout), bạn có thể thực hiện lại yêu cầu với cùng HTTP header. Nếu Fundiin đã xử lý yêu cầu, phản hồi cho lần đầu tiên sẽ được trả về mà không bị duplicate
Nếu bạn gửi một yêu cầu trùng lặp trước khi yêu cầu đầu tiên đã hoàn thành, API sẽ trả về HTTP 422 – Unprocessable Entity status với status code REQUEST_PROCESSING
: "yêu cầu đã được xử lý hoặc đang được thực hiện".
Phạm vi và Thời gian hiệu lực
Idempotency-Key có hiệu lực trong ít nhất 7 ngày kể từ lần gửi đầu tiên
Khi thực hiện lại các giao dịch, cần sử dụng exponential backoff để tránh quá tải API và gặp vấn đề về giới hạn tần suất. Để biết thêm thông tin về chiến lược exponential backoff, vui lòng tham khảo bài viết trên Wikipedia về Exponential Backoff..