Thao tác thất bại vẫn 200 OK, database lỗi vẫn 200 OK, server cháy vẫn 200 OK — Luna 'khủng hoảng niềm tin', còn Tau khen API 'thái độ tốt'.
HTTP 200 có nghĩa là thành công?
Không hẳn. HTTP 200 chỉ nói 'máy chủ nhận và xử lý xong yêu cầu ở tầng HTTP', KHÔNG đảm bảo nghiệp vụ bên trong thành công. API tốt trả mã đúng ngữ nghĩa: 4xx khi lỗi phía client, 5xx khi lỗi server. Trả 200 cho mọi thứ (kể cả lỗi) khiến người gọi khó biết chuyện gì thật sự xảy ra và khó tự động phát hiện sự cố.
Câu hỏi thường gặp
- 200 OK là thành công đúng không? — Chỉ ở tầng HTTP; kết quả nghiệp vụ có thể vẫn lỗi, cần đọc body/mã lỗi.
- Vì sao nên dùng đúng mã lỗi? — Để client, log và hệ thống giám sát tự biết thành công hay thất bại mà không phải đoán.
Về bài viết này: truyện tranh giải trí của DETOON kèm lưu ý thực tế về thiết kế API.
