Back to Blog
May 22, 2025 at 02:13TechiesX
🚫 6 sai lầm khi thiết kế API mà mình sẽ không bao giờ lặp lại nữa 🚫 Trong quá trình phát triển hệ thống, mình từng vấp phải không ít "bài học đắt giá" khi thiết kế API. Dưới đây là 6 điểm mình từng làm sai và rút ra được bài học quý giá: 1️⃣ Phản hồi lỗi quá chung chung 🔹 "400 Bad Request" không giúp ai debug được gì 🔹 Thiếu thông tin chi tiết (code, message, details, requestId) gây khó khăn khi support 2️⃣ Chỉ suy nghĩ theo hướng resource (CRUD) 🔹 Không phải mọi thứ đều phù hợp với CRUD 🔹 Nhiều thao tác nghiệp vụ vượt ra khỏi ranh giới của resource 🔹 Dùng verb như /orders/123/cancel đôi khi hợp lý hơn PATCH 3️⃣ Version nằm trong URL 🔹 /v1/users nhanh chóng trở thành món nợ kỹ thuật 🔹 Gây khó khăn cho hypermedia và caching 🔹 Giải pháp tốt hơn: Dùng Accept header để versioning 4️⃣ Phân trang không dùng cursor 🔹 Offset dễ gây lỗi khi có concurrent write 🔹 Không hỗ trợ tốt cho scale lớn 🔹 Cursor-based pagination là bắt buộc, không phải tùy chọn 5️⃣ Mọi thứ đều đồng bộ (synchronous) 🔹 Chặn client cho tác vụ lâu → timeout là điều chắc chắn 🔹 Không có retry hoặc idempotency → dễ lỗi hoặc lặp lại 🔹 Các thao tác lâu nên dùng async pattern 6️⃣ Bỏ qua cache headers 🔹 Không dùng ETag hoặc If-None-Match → tốn băng thông 🔹 Không có chỉ dẫn cache rõ ràng → hành vi không nhất quán 🔹 Cache đúng cách giúp giảm tải hệ thống hơn 60%! 💡 Những lỗi này tuy nhỏ nhưng ảnh hưởng cực lớn đến hiệu năng, trải nghiệm người dùng và khả năng mở rộng hệ thống. 👉 Bạn đã từng vấp phải lỗi nào trong số này chưa? Hãy chia sẻ thêm nhé! #API #backend #techtips #systemdesign #APIDesign #developerlife