Кой е най-добрият начин за ограничаване на заявките за API? По принцип искаме да ограничим потребителите до 360 API заявки на час (заявка на всеки 10 секунди). Това, което идва на ум, е проследяване на всяка заявка за API и съхраняване:
ip-address hourly-requests
1.2.3.4 77
2.3.4.5 34
3.4.5.6 124
Ако заявките за ip-адрес са по-големи от 360, просто върнете заглавка с:
429 - Too Many Requests
След това върнете брояча на почасови заявки на всеки час. Това изглежда като много неефективен метод, тъй като трябва да направим MySQL заявка за всяка API заявка, за да увеличим брояча. Освен това ще ни е необходима cron задача за нулиране на всички броячи на всеки час.
Има ли по-елегантно/ефикасно решение?