Xử lý lỗi
Danh sách mã lỗi và cách xử lý khi gọi API
Cấu trúc response lỗi
Khi xảy ra lỗi, API trả về JSON với format:
JSON
{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "Mô tả lỗi chi tiết"
}
}
HTTP Status Codes
| Status | Ý nghĩa | Cách xử lý |
|---|---|---|
| 200 | Thành công | Xử lý data bình thường |
| 400 | Bad Request | Kiểm tra lại tham số gửi lên |
| 401 | Unauthorized | Kiểm tra API Key |
| 403 | Forbidden | Key không có quyền hoặc dịch vụ không khả dụng |
| 404 | Not Found | Endpoint không tồn tại |
| 429 | Too Many Requests | Vượt rate limit, đợi và thử lại |
| 500 | Internal Server Error | Lỗi hệ thống, thử lại sau |
| 502 | Bad Gateway | Upstream service không phản hồi |
| 503 | Service Unavailable | Dịch vụ đang bảo trì |
Mã lỗi thường gặp
Xác thực
UNAUTHORIZED— Thiếu header AuthorizationINVALID_API_KEY— Key không hợp lệINSUFFICIENT_SCOPE— Key không đủ quyềnKEY_DISABLED— Key đã bị vô hiệu hóa
Validation
VALIDATION_ERROR— Tham số không hợp lệMISSING_REQUIRED_FIELD— Thiếu trường bắt buộcINVALID_DOMAIN— Tên miền không hợp lệ
Rate Limit
RATE_LIMIT_EXCEEDED— Vượt giới hạn truy cập
Upstream
UPSTREAM_ERROR— Dịch vụ upstream lỗiUPSTREAM_TIMEOUT— Dịch vụ upstream không phản hồi kịp
Ví dụ xử lý lỗi
RESPONSE=$(curl -s -H "Authorization: Bearer inet_sk_your_key" "$URL")
SUCCESS=$(echo "$RESPONSE" | jq -r '.success')
ERROR_CODE=$(echo "$RESPONSE" | jq -r '.error.code // empty')
if [ "$SUCCESS" = "false" ]; then
case "$ERROR_CODE" in
"RATE_LIMIT_EXCEEDED") echo "Rate limited, retry later" ;;
"INVALID_API_KEY") echo "Check your API key" ;;
*) echo "Error: $(echo "$RESPONSE" | jq -r '.error.message')" ;;
esac
fiLưu ý quan trọng
- Luôn kiểm tra field
successtrong response - Không dựa vào HTTP status code duy nhất — đọc
error.codeđể xử lý chính xác - Log
error.messageđể debug - Với lỗi 5xx, thử lại sau 1-2 giây (không retry liên tục)