Bỏ qua để đến nội dung
Knowledge Hub

API & Networking Cơ bản

Một API nội bộ gọi sai thì thường thấy stack trace ngay. Một API nhận dữ liệu từ hệ thống bên ngoài thì khó hơn: người gửi có chính sách retry riêng, response có thể mất trên đường về, và bất kỳ ai biết URL đều có thể gửi JSON giả.

Trang này là điểm bắt đầu để chọn đúng bài cần đọc. Danh sách đầy đủ nằm ở menu bên trái.

Câu hỏi Bài
Nhận request từ bên ngoài: tin được không, xử lý trùng chưa? Webhook: chữ ký, retry, idempotency
API báo lỗi cho client thế nào để phân nhánh được? Lỗi API với RFC 9457
Một request đi nhiều hop còn bao nhiêu thời gian? Timeout budget và deadline
Một client gửi quá nhiều request: chặn thế nào, trả lỗi gì? Rate limiting cho API
Client retry POST /orders sau timeout: làm sao không tạo hai đơn? Idempotency-Key
Static asset và response API sau CDN: cache bao lâu, revalidate thế nào, cái gì không bao giờ được cache? HTTP caching

Tách ba cơ chế hay bị gộp (chữ ký, idempotency, ACK), có handler mẫu verify-rồi-dedupe và bảng crash point. Điểm mấu chốt: xác minh trên raw body trước khi parse.

HTTP status nói lớp kết quả, type là mã loại lỗi ổn định, detail dành cho người đọc. Có ví dụ JSON đối chiếu giữa 200 {success:false} và 409 problem+json, cùng bảng status và hướng dẫn retry.

Timeout giới hạn một bước, deadline giới hạn cả request. Có waterfall 800 ms, bảng timeout hierarchy và cách nối AbortSignal trong Node.

Chọn thuật toán (fixed window, sliding window, token bucket), lưu trạng thái ở Redis bằng Lua atomic, trả 429 cùng Retry-After. Có demo cùng một burst qua hai thuật toán.

Retry và trạng thái không chắc chắn: tám ngộ nhận về hệ phân tán và retry, backoff, jitter. Xử lý trùng ở phía message: idempotent consumer và transactional outbox. Ranh giới xác thực ở trình duyệt: CORS và CSRF.