Kako Postaviti Globalni Middleware za Sve API Rute u Laravelu

Kako Postaviti Globalni Middleware za Sve API Rute u Laravelu

Middleware u Laravelu predstavlja posrednika između zahtjeva korisnika i aplikacije. Oni se koriste za filtriranje ili manipulaciju zahtjevima prije nego što dođu do kontrolera. Postavljanje globalnog Middleware-a za sve API rute omogućava vam da primijenite određenu logiku na svaki API zahtjev u vašoj aplikaciji. U ovom blogu istražit ćemo tri opcije za postavljanje globalnog Middleware-a.

Opcija 1: U Datoteci za Rute

Prva opcija je postavljanje Middleware-a direktno u datoteku za rute. Ovo se može postići jednostavno dodavanjem Middleware-a u grupu Middleware-a koja se primjenjuje na sve API rute u datoteci routes/api.php. Evo kako to izgleda:

// routes/api.php
Route::middleware('YourMiddleware::class')->group(function () {
   // sve API rute
});


 

Ovaj pristup je brz i jednostavan za implementaciju, ali može postati nepraktičan ako imate veliki broj API ruta.  

 

Opcija 2: U Provajderu Usluga za Rute

Druga opcija je postavljanje Middleware-a u provajderu usluga za rute. To se radi u metodi boot() provajdera RouteServiceProvider. Ovaj pristup omogućava centralizovanje konfiguracije Middleware-a i čini ga dostupnim svim rutama u vašoj aplikaciji. Evo kako to izgleda:

 


// app/Providers/RouteServiceProvider.php
public function boot()
{
    $this->configureRateLimiting();

    $this->routes(function () {
        Route::middleware(['api', 'YourMiddleware::class'])
            // ...
    });
}

 

Ova metoda je posebno korisna ako želite primijeniti Middleware na sve rute, ali želite izbjeći nepotreban dupliranje koda.  

Opcija 3: U Globalnoj Srednjoj Složenosti za Rute

Treća opcija je postavljanje Middleware-a u globalnu srednju složenost za rute. To se radi u datoteci app/Http/Kernel.php dodavanjem Middleware-a u grupu 'api'. Evo kako to izgleda:

 


// app/Http/Kernel.php
protected $middlewareGroups = [
    'api' => [
        // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
        'throttle:api',
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
        'YourMiddleware::class',
    ],
];

 

Ovaj pristup omogućava vam postavljanje Middleware-a na sve API rute na jednom centralnom mjestu, čime olakšava održavanje i upravljanje.  

Nadam se da vam je ovaj blog koristan za postavljanje globalnog Middleware-a u Laravelu! Ako imate bilo kakvih pitanja ili želite dodatne informacije, slobodno pitajte.