Tôi đang xây dựng API cho nền tảng phân phát quảng cáo cho phép bạn yêu cầu dữ liệu theo dõi cho các chiến dịch quảng cáo. Chiến dịch thường vượt quá hàng trăm triệu yêu cầu, điều đó có nghĩa là sẽ có nhiều dữ liệu trị giá hàng terabyte. Do đó, chúng tôi cần ngăn người tiêu dùng API yêu cầu quá nhiều dữ liệu cùng một lúc (chẳng hạn như yêu cầu hết thời gian), nhưng tôi không chắc cách thực hành tốt nhất để làm như vậy là gì.
Các tùy chọn tôi đã xác định là:
- thêm một tham số phụ vào yêu cầu cho biết phần nào của dữ liệu là mong muốn
- cắt bớt dữ liệu và bằng cách nào đó nói với khách hàng rằng họ cần sử dụng các bộ lọc cụ thể hơn
- phản hồi với mã trạng thái HTTP 413 (nhưng điều này dường như dành cho các cơ quan yêu cầu lớn, không phải phản hồi)
- chuyển sang API phát trực tuyến (như API phát trực tuyến của twitter )
Nhưng câu hỏi của tôi là, thực hành tiêu chuẩn / phản ứng thích hợp cho loại tình huống này là gì?
Lưu ý: Các cuộc tấn công DoS không phải là vấn đề đáng lo ngại vì đây sẽ không phải là API công khai