configureRateLimiting(); // $this->routes(function () { // Route::middleware('api') // ->prefix('api') // ->group(base_path('routes/api.php')); // Route::middleware('web') // ->group(base_path('routes/web.php')); // }); parent::boot(); } public function map() { $this->mapApiRoutes(); $this->mapWebRoutes(); $this->mapRoutesByDirectory(); $this->mapRoutesApiByDirectory(); } /** * Configure the rate limiters for the application. */ protected function configureRateLimiting(): void { RateLimiter::for('api', function (Request $request) { return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip()); }); } protected function mapWebRoutes() { Route::middleware('web') ->namespace($this->namespace) ->group(base_path('routes/web.php')); } protected function mapApiRoutes() { Route::prefix('api') ->middleware('api') ->namespace($this->namespace) ->group(base_path('routes/api.php')); } protected function mapRoutesByDirectory() { Route::group(['namespace' => $this->namespace, 'middleware'=>'web'], function ($router) { foreach(File::allFiles(base_path().'/routes/web') as $route) { if(preg_match("/^.*Route.php$/", $route->getPathname())) require $route->getPathname(); } }); } protected function mapRoutesApiByDirectory() { Route::group(['prefix' => 'api', 'middleware'=>'web'], function ($router) { foreach(File::allFiles(base_path().'/routes/api') as $route) { if(preg_match("/^.*Api.php$/", $route->getPathname())) require $route->getPathname(); } }); } }