Changeset View
Changeset View
Standalone View
Standalone View
src/app/Providers/RouteServiceProvider.php
<?php | <?php | ||||
namespace App\Providers; | namespace App\Providers; | ||||
use Illuminate\Cache\RateLimiting\Limit; | use Illuminate\Cache\RateLimiting\Limit; | ||||
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; | use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; | ||||
use Illuminate\Http\Request; | use Illuminate\Http\Request; | ||||
use Illuminate\Support\Facades\RateLimiter; | use Illuminate\Support\Facades\RateLimiter; | ||||
use Illuminate\Support\Facades\Route; | use Illuminate\Support\Facades\Route; | ||||
class RouteServiceProvider extends ServiceProvider | class RouteServiceProvider extends ServiceProvider | ||||
{ | { | ||||
/** | /** | ||||
* Define your route model bindings, pattern filters, etc. | * Define your route model bindings, pattern filters, etc. | ||||
* | |||||
* @return void | |||||
*/ | */ | ||||
public function boot() | public function boot(): void | ||||
{ | { | ||||
$this->configureRateLimiting(); | $this->configureRateLimiting(); | ||||
$this->routes(function () { | $this->routes(function () { | ||||
$prefix = \trim(\parse_url(\config('app.url'), PHP_URL_PATH), '/') . '/'; | $prefix = \trim(\parse_url(\config('app.url'), PHP_URL_PATH), '/') . '/'; | ||||
Route::prefix($prefix . 'api') | Route::prefix($prefix . 'api') | ||||
->group(base_path('routes/api.php')); | ->group(base_path('routes/api.php')); | ||||
Route::middleware('web') | Route::middleware('web') | ||||
->group(base_path('routes/web.php')); | ->group(base_path('routes/web.php')); | ||||
}); | }); | ||||
} | } | ||||
/** | /** | ||||
* Configure the rate limiters for the application. | * Configure the rate limiters for the application. | ||||
* | |||||
* @return void | |||||
*/ | */ | ||||
protected function configureRateLimiting() | protected function configureRateLimiting(): void | ||||
{ | { | ||||
RateLimiter::for('api', function (Request $request) { | RateLimiter::for('api', function (Request $request) { | ||||
return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip()); | return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip()); | ||||
}); | }); | ||||
} | } | ||||
} | } |