Ограничение скорости API — важнейший аспект создания надежных и безопасных веб-приложений. В Laravel, одном из самых популярных PHP-фреймворков, ограничение скорости упрощается благодаря встроенному промежуточному программному обеспечению ограничения скорости. В этой статье мы рассмотрим ограничение скорости API по умолчанию в новой установке Laravel, обсудим различные методы ограничения скорости и предоставим практические примеры кода, которые помогут вам освоить ограничение скорости API в Laravel.
Ограничение скорости API по умолчанию:
По умолчанию Laravel устанавливает глобальное ограничение скорости в 60 запросов в минуту для маршрутов API. Это означает, что один клиент может выполнить до 60 запросов к API в течение одной минуты. Если предел скорости превышен, Laravel возвращает код состояния HTTP 429 Too Many Requests.
Настройка ограничения скорости:
Laravel позволяет вам настроить конфигурацию ограничения скорости в соответствии с конкретными потребностями вашего приложения. Конфигурацию ограничения скорости можно найти в файле app/Http/Kernel.php
. В массиве $middlewareGroups
вы найдете группу 'api'
, которая содержит промежуточное программное обеспечение ограничителя скорости.
Чтобы изменить ограничение скорости, вы можете просто обновить параметр промежуточного программного обеспечения throttle:60,1
. Первое значение представляет количество запросов, разрешенных в пределах временного окна (60 в конфигурации по умолчанию), а второе значение представляет временное окно в минутах (1 минута в конфигурации по умолчанию).
Примеры кода:
Давайте рассмотрим некоторые распространенные методы ограничения скорости в Laravel:
-
Ограничение скорости по IP-адресу:
Route::middleware('throttle:60,1')->group(function () { // Your API routes here });
-
Ограничение скорости по токену API:
Route::middleware('auth:api', 'throttle:60,1')->group(function () { // Your authenticated API routes here });
-
Ограничение скорости с помощью пользовательского ключа:
Route::middleware('throttle:60,1')->group(function () { Route::get('/api/users/{id}', function ($id) { // Rate limit by custom key (e.g., user ID) }); });
-
Ограничение оценки с помощью специального ответа:
use Illuminate\Routing\Middleware\ThrottleRequests; Route::middleware(ThrottleRequests::class.':60,1')->group(function () { // Your API routes here });
Понимание и реализация ограничения скорости API имеет важное значение для создания надежных и безопасных приложений Laravel. В этой статье мы рассмотрели ограничение скорости API по умолчанию в новой установке Laravel и изучили различные методы ограничения скорости с практическими примерами кода. Настраивая конфигурацию ограничения скорости в соответствии с требованиями вашего приложения, вы можете обеспечить оптимальную производительность и защитить свой API от злоупотреблений.
Следуя этим рекомендациям, вы сможете освоить ограничение скорости API в Laravel и повысить общую функциональность и безопасность своих веб-приложений.