/ app / Providers / RouteServiceProvider.php
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  }