Định nghĩa
REST API (Representational State Transfer API) là một kiểu kiến trúc giao diện lập trình ứng dụng dựa trên giao thức HTTP, cho phép các hệ thống khác nhau trao đổi dữ liệu với nhau một cách chuẩn hóa. Thay vì mỗi nền tảng tự xây dựng một cách kết nối riêng, REST API định nghĩa một bộ quy tắc chung: dữ liệu được xem như các "tài nguyên" (resource), mỗi tài nguyên có một địa chỉ URL riêng, và các thao tác được thực hiện thông qua các phương thức HTTP như GET, POST, PUT, PATCH, DELETE.
Trong bối cảnh DTC/thương mại điện tử xuyên biên giới, REST API chính là "dây thần kinh" kết nối giữa website bán hàng, hệ thống quản lý kho, nền tảng quảng cáo và đơn vị vận chuyển. Khi một đơn hàng được tạo trên Shopify, REST API sẽ đồng bộ đơn đó sang hệ thống ERP; khi tồn kho thay đổi, REST API cập nhật lại số lượng lên Facebook Ads và Google Shopping.
Ví dụ dễ hiểu
Hãy tưởng tượng bạn vận hành một cửa hàng DTC bán áo thun qua 3 kênh: website riêng, Shopee và TikTok Shop. Mỗi kênh có một "người thư ký" riêng (hệ thống riêng). Nếu không có REST API, bạn phải gọi điện cho từng người thư ký để hỏi: "Còn bao nhiêu áo size M?" và tự tay ghi lại.
Với REST API, bạn chỉ cần gửi một yêu cầu chuẩn:
GET https://api.cuahang.vn/v1/inventory?sku=TSHIRT-M
Hệ thống sẽ trả về JSON:
{
"sku": "TSHIRT-M",
"quantity": 128,
"warehouse": "HN-01",
"updated_at": "2025-01-15T08:30:00Z"
}
Giống như việc bạn có một "cổng dữ liệu" chung, mọi hệ thống đều hiểu cùng một ngôn ngữ, không cần phiên dịch thủ công.
Công thức & nguyên tắc cốt lõi
REST API vận hành dựa trên 6 nguyên tắc kiến trúc:
1. Client–Server: Tách biệt giao diện và lưu trữ dữ liệu.
2. Stateless: Mỗi request độc lập, server không lưu trạng thái phiên.
3. Cacheable: Response có thể được cache để giảm tải.
4. Uniform Interface: Cùng một chuẩn URL + HTTP method cho mọi tài nguyên.
5. Layered System: Có thể chèn proxy, gateway, CDN ở giữa.
6. Code on Demand (tùy chọn): Server có thể gửi code thực thi.
Công thức throughput lý thuyết khi đồng bộ đơn hàng:
Throughput (đơn/giây) = Số connection đồng thời × (1 / Thời gian phản hồi trung bình)
Ví dụ: 50 connection đồng thời, thời gian phản hồi 200ms → 50 × (1 / 0.2) = 250 đơn/giây.
Với rate limit thực tế của các nền tảng:
Số request tối đa/ngày = Rate limit mỗi giây × 86.400 giây
Shopify REST API cho phép 2 request/giây trên gói Basic → tối đa 172.800 request/ngày. Nếu mỗi đơn cần 3 request (tạo đơn, cập nhật kho, gửi tracking), bạn xử lý được khoảng 57.600 đơn/ngày.
Bảng so sánh REST API với các kiểu API khác
| Tiêu chí | REST API | GraphQL | Webhook | SOAP |
|---|---|---|---|---|
| Giao thức | HTTP/HTTPS | HTTP/HTTPS | HTTP POST | HTTP, SMTP, TCP |
| Định dạng dữ liệu | JSON, XML | JSON | JSON, XML | XML |
| Chiều giao tiếp | Client → Server (pull) | Client → Server (pull) | Server → Client (push) | Hai chiều |
| Độ trễ đồng bộ | 200–800ms | 150–500ms | Gần như tức thời | 500ms–2s |
| Phù hợp với | Đồng bộ đơn, kho, ads | Truy vấn phức tạp | Cập nhật real-time | Hệ thống ngân hàng cũ |
| Độ phổ biến trong DTC | ~85% | ~10% | Dùng kèm REST | <5% |
Ứng dụng thực tế trong DTC/Cross-border
1. Đồng bộ đơn hàng đa kênh
Mỗi khi có đơn mới từ Amazon, Etsy hay TikTok Shop, hệ thống dùng POST /orders để đẩy vào ERP trung tâm. Với 500 đơn/ngày và mỗi đơn 2 request, bạn cần tối thiểu 1.000 request/ngày — nằm trong ngưỡng an toàn của hầu hết nền tảng.
2. Đồng bộ tồn kho real-time
Khi kho Hà Nội xuất 20 sản phẩm, hệ thống gọi PATCH /inventory/{sku} để trừ tồn trên tất cả kênh. Nếu không đồng bộ trong vòng 5 phút, nguy cơ bán vượt tồn (oversell) tăng lên đáng kể — trung bình mỗi vụ oversell tốn 15–30 USD chi phí xử lý và hoàn tiền.
3. Đồng bộ chiến dịch quảng cáo
REST API của Meta Marketing cho phép cập nhật ngân sách, đối tượng, creative theo lô. Một agency chạy 200 campaign có thể đồng bộ toàn bộ trong 1 lần gọi batch thay vì 200 lần riêng lẻ, tiết kiệm ~90% thời gian.
4. Kết nối đơn vị vận chuyển
DHL, FedEx, GHN, Viettel Post đều cung cấp REST API để tạo vận đơn, in label và tra cứu tracking. Trung bình một vận đơn cần 4 request: tạo đơn, lấy label, cập nhật trạng thái, hủy (nếu cần).
Lỗi thường gặp
- Nhầm REST với HTTP thuần: Chỉ dùng GET/POST không có nghĩa là REST. Cần đúng resource, đúng method, đúng status code.
- Bỏ qua rate limit: Gọi API không kiểm soát dẫn đến bị block IP hoặc khóa tài khoản. Luôn đọc header X-RateLimit-Remaining.
- Không xử lý lỗi idempotency: Gọi POST /orders hai lần có thể tạo 2 đơn trùng. Cần dùng Idempotency-Key.
- Lưu token trong code: API key/token phải để trong biến môi trường, không hard-code.
- Không có retry logic: Mạng chập chờn khiến đồng bộ thất bại. Nên retry theo exponential backoff: 1s → 2s → 4s → 8s.
- Bỏ qua versioning: API thay đổi đột ngột làm hỏng tích hợp. Luôn gọi qua /v1/, /v2/.
Thuật ngữ liên quan
- Endpoint: Địa chỉ URL cụ thể của một tài nguyên.
- HTTP Method: GET, POST, PUT, PATCH, DELETE.
- Status Code: 200 (OK), 201 (Created), 400 (Bad Request), 401 (Unauthorized), 429 (Too Many Requests), 500 (Server Error).
- JSON: Định dạng dữ liệu phổ biến nhất trong REST API.
- Webhook: Cơ chế push ngược từ server, thường dùng kèm REST.
- OAuth 2.0: Chuẩn xác thực phổ biến cho REST API.
- Rate Limit: Giới hạn số request trong một khoảng thời gian.
- Idempotency: Tính chất đảm bảo gọi nhiều lần cho cùng kết quả.
- API Gateway: Lớp trung gian quản lý, xác thực và định tuyến request.
- GraphQL: Giải pháp thay thế REST khi cần truy vấn linh hoạt.
