RouteServiceProvider.php
1 <?php 2 3 namespace App\Providers; 4 5 use Illuminate\Cache\RateLimiting\Limit; 6 use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; 7 use Illuminate\Http\Request; 8 use Illuminate\Support\Facades\RateLimiter; 9 use Illuminate\Support\Facades\Route; 10 11 class RouteServiceProvider extends ServiceProvider 12 { 13 /** 14 * The path to the "home" route for your application. 15 * 16 * Typically, users are redirected here after authentication. 17 * 18 * @var string 19 */ 20 public const HOME = '/'; 21 22 /** 23 * Define your route model bindings, pattern filters, and other route configuration. 24 * 25 * @return void 26 */ 27 public function boot() 28 { 29 $this->configureRateLimiting(); 30 31 $this->routes(function () { 32 Route::middleware('api') 33 ->prefix('api') 34 ->group(base_path('routes/api.php')); 35 36 Route::middleware('web') 37 ->group(base_path('routes/web.php')); 38 39 Route::middleware('web') 40 ->group(base_path('routes/filters.php')); 41 }); 42 } 43 44 /** 45 * Configure the rate limiters for the application. 46 * 47 * @return void 48 */ 49 protected function configureRateLimiting() 50 { 51 RateLimiter::for('api', function (Request $request) { 52 return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip()); 53 }); 54 } 55 }