123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- <?php
- namespace App\Providers;
- use Illuminate\Cache\RateLimiting\Limit;
- use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\RateLimiter;
- use Illuminate\Support\Facades\Route;
- class RouteServiceProvider extends ServiceProvider
- {
- /**
- * The path to the "home" route for your application.
- *
- * This is used by Laravel authentication to redirect users after login.
- *
- * @var string
- */
- public const HOME = '/home';
- protected $namespace = 'App\Http\Controllers';
- /**
- * The controller namespace for the application.
- *
- * When present, controller route declarations will automatically be prefixed with this namespace.
- *
- * @var string|null
- */
- // protected $namespace = 'App\\Http\\Controllers';
- /**
- * Define your route model bindings, pattern filters, etc.
- *
- * @return void
- */
- public function boot()
- {
- // $this->configureRateLimiting();
- //后台接口路由
- $this->mapAdminApiRoutes();
- //前台接口路由
- $this->mapApiRoutes();
- $this->routes(function () {
- Route::middleware('web')
- ->namespace($this->namespace)
- ->group(base_path('routes/web.php'));
- });
- }
- /**
- * Configure the rate limiters for the application.
- *
- * @return void
- */
- protected function configureRateLimiting()
- {
- RateLimiter::for('api', function (Request $request) {
- return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip());
- });
- }
- /**
- * 总后台API路由
- */
- protected function mapAdminApiRoutes(){
- foreach ( glob(base_path('routes'.DIRECTORY_SEPARATOR.'adminApi'.DIRECTORY_SEPARATOR).'*.php' ) as $fileName ) {
- $fileName = basename( $fileName );
- $prefix = substr( $fileName,0,strrpos($fileName,'.') );
- $nameSpace = ucfirst($prefix);
- //中间件过滤加载
- Route::middleware('adminApi_verify')
- ->namespace( $this->namespace."\\AdminApi" )
- ->group( base_path('routes'.DIRECTORY_SEPARATOR.'adminApi'.DIRECTORY_SEPARATOR."{$fileName}") );
- }
- }
- /**
- * Define the "api" routes for the application.
- *
- * These routes are typically stateless.
- *
- * @return void
- */
- protected function mapApiRoutes()
- {
- Route::prefix('api')
- ->middleware('api')
- ->namespace($this->namespace)
- ->group(base_path('routes/api.php'));
- foreach ( glob(base_path('routes'.DIRECTORY_SEPARATOR.'api'.DIRECTORY_SEPARATOR).'*.php' ) as $fileName ) {
- $fileName = basename( $fileName );
- Route::middleware('api_verify')
- ->namespace( $this->namespace."\\Api" )
- ->prefix('api')
- ->group( base_path('routes'.DIRECTORY_SEPARATOR.'api'.DIRECTORY_SEPARATOR."{$fileName}") );
- }
- }
- }
|