configureRateLimiting(); $this->routes(function () { $this->mapWebRoutes(); $this->mapApiRoutes(); }); } /** * Define the "web" routes for the application. * * These routes all receive session state, CSRF protection, etc. * * @return void */ protected function mapWebRoutes() { Route::group([ 'middleware' => 'web', 'namespace' => $this->namespace, ], function (Router $router) { require base_path('routes/web.php'); Theme::dispatch(ThemeEvents::ROUTES_REGISTER_WEB, $router); }); Route::group([ 'middleware' => ['web', 'auth'], ], function (Router $router) { Theme::dispatch(ThemeEvents::ROUTES_REGISTER_WEB_AUTH, $router); }); } /** * Define the "api" routes for the application. * * These routes are typically stateless. * * @return void */ protected function mapApiRoutes() { Route::group([ 'middleware' => 'api', 'namespace' => $this->namespace . '\Api', 'prefix' => 'api', ], function ($router) { require base_path('routes/api.php'); }); } /** * Configure the rate limiters for the application. * * @return void */ protected function configureRateLimiting() { RateLimiter::for('api', function (Request $request) { return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip()); }); } }