РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
517 of 1392 menu

Middleware throttle

Middleware throttle применяется к маршрутам и контроллерам для защиты приложения от чрезмерного количества запросов. Он позволяет ограничить число запросов с одного IP-адреса или для аутентифицированных пользователей в течение заданного периода времени. Первым параметром передаётся максимальное количество попыток, вторым - количество минут, в течение которых действует ограничение.

Синтаксис

<?php Route::middleware('throttle:max_requests,minutes')->group(function () { // ... }); ?>

Пример

Давайте ограничим маршрут '/api/users' до 60 запросов в минуту:

<?php use Illuminate\Support\Facades\Route; Route::middleware('throttle:60,1')->group(function () { Route::get('/users', function () { return ['users' => ['John', 'Jane', 'Bob']]; }); }); ?>

Пример

Применим ограничение 100 запросов за 5 минут к контроллеру:

<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\ArticleController; Route::get('/articles', [ArticleController::class, 'index']) ->middleware('throttle:100,5'); ?>

Пример

Используем динамическое ограничение для аутентифицированных пользователей:

<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\DashboardController; Route::middleware(['auth', 'throttle:auth'])->group(function () { Route::get('/dashboard', [DashboardController::class, 'index']); Route::get('/profile', [DashboardController::class, 'profile']); }); ?>

Пример

Настроим разные ограничения для разных методов API:

<?php use Illuminate\Support\Facades\Route; Route::prefix('api')->group(function () { Route::get('/posts', function () { return ['posts' => ['post 1', 'post 2', 'post 3']]; })->middleware('throttle:200,1'); Route::post('/posts', function () { return ['message' => 'Post created successfully']; })->middleware('throttle:50,1'); }); ?>

Смотрите также

  • метод middleware,
    который назначает middleware для маршрута
  • метод group,
    который группирует маршруты с общими параметрами
  • метод prefix,
    который добавляет префикс к URI маршрутов
  • метод controller,
    который указывает контроллер для маршрута
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить