Những gợi ý khi thiết kế & test API (Phần 1)
- Sử dụng các HTTP method phù hợp với từng hành động: GET (đọc), POST (tạo mới), PUT/PATCH (cập nhật/sửa), DELETE (để xóa bản ghi), và phản hồi 405 Method Not Allowed nếu HTTP method không phù hợp với tài nguyên được request.
- Xác nhận dữ liệu content-type ở mỗi tiêu đề (Content Negotiation) chỉ cho phép những định dạng được hỗ trợ (chẳng hạn như. application/xml, application/json, vv) và phản hồi 406 Not Acceptable nếu không khớp.
- Xác nhận dữ liệu content-type được chấp nhận khi gửi lên (chẳng hạn như. application/x-www-form-urlencoded, multipart/form-data, application/json…).
- Kiểm tra dữ liệu truyền lên từ người dùng để tránh các lỗ hổng phổ biến (chẳng hạn như XSS, SQL-Injection, Remote Code Execution…).
- Không sử dụng các dữ liệu nhạy cảm như (credentials, Passwords, security tokens, or API keys) tại URL, sử dụng header Authorization để xác thực.
- Đảm bảo rằng các endpoint chỉ xử lý dữ liệu sau khi đã qua bước xác thực.
- Nên tránh việc sử dụng ID của tài nguyên. Sử dụng /me/orders thay vì /user/654321/orders.
- Không nên thiết kế ID dạng tự động tăng. Sử dụng UUID để thay thế.
- Nếu bạn đang cần xử lý với lượng dữ liệu lớn, sử dụng các kỹ thuật Workers và Queues để xử lý tác vụ dưới nền càng nhiều càng tốt và giúp phản hồi nhanh để tránh bị timeout HTTP.
- Đừng quên tắt chế độ DEBUG.
Có ý nào chưa rõ các bạn có thể comment bên dưới nhé.
(Tham khảo: shieldfy)
Leave a Comment