Appearance
Checklist khi review thiết kế API
- URL dùng danh từ số nhiều, không chứa động từ (
/userskhông phải/getUsers)? - HTTP method có đúng ngữ nghĩa (GET đọc, POST tạo, PUT thay thế toàn bộ, PATCH sửa 1 phần, DELETE xoá) không?
- Các thao tác cần idempotent (đặc biệt PUT, và POST có rủi ro bị retry) có được xử lý đúng (hoặc có idempotency key) không?
- Status code trả về có đúng nhóm (4xx cho lỗi client, 5xx cho lỗi server) không? Đặc biệt: lỗi validate có đang bị trả nhầm thành 5xx không?
- Phân biệt đúng
401(chưa xác thực) và403(đã xác thực nhưng thiếu quyền) chưa? - Response lỗi có lộ thông tin nhạy cảm (stack trace, câu SQL...) không?
- Format lỗi có nhất quán giữa các endpoint không (nên theo 1 chuẩn chung, ví dụ RFC 9457 Problem Details)?
- Versioning API có được áp dụng nhất quán 1 chiến lược duy nhất không?
- Endpoint trả danh sách có hỗ trợ phân trang không? Nếu dữ liệu lớn/thay đổi liên tục, có đang dùng offset-based (dễ bị lệch trang) thay vì cursor-based không?
- Có tài liệu OpenAPI/Swagger đầy đủ, cập nhật đúng với API thực tế không?
- Nếu nhiều team/consumer cùng dùng API, có đang thiết kế contract-first (để các bên làm song song) hay chỉ code-first (dễ trễ tài liệu)?
- CORS có được cấu hình đúng origin cần thiết không, hay đang để
*kèm credentials (cấu hình sai/không an toàn)? - Các endpoint nhạy cảm (đăng nhập, gửi OTP...) có rate limiting và trả
429kèmRetry-Afterkhi vượt giới hạn không?