| @@ -0,0 +1,38 @@ | |||||
| <?php | |||||
| namespace App\Http\Controllers\Web; | |||||
| use Illuminate\Routing\Controller as BaseController; | |||||
| use Illuminate\Http\Request; | |||||
| use Illuminate\Support\Facades\Auth; | |||||
| class IndexController extends BaseController | |||||
| { | |||||
| public function description(): string | |||||
| { | |||||
| return "viewの返却"; | |||||
| } | |||||
| public function entry(Request $request) | |||||
| { | |||||
| if (!$request->expectsJson()) { | |||||
| return response()->view('index')->withHeaders($this->makeHeader()); | |||||
| } else { | |||||
| return response()->json([], 404); | |||||
| } | |||||
| } | |||||
| private function makeHeader(): array | |||||
| { | |||||
| $header = []; | |||||
| $user = Auth::user(); | |||||
| if ($user) { | |||||
| // $header["User-Auth"] = sprintf("%d,%d", $user->id, $user->role->value); | |||||
| $header["User-Auth"] = "yes"; | |||||
| } else { | |||||
| $header["User-Auth"] = 'none'; | |||||
| } | |||||
| return $header; | |||||
| } | |||||
| } | |||||
| @@ -27,7 +27,7 @@ class RouteServiceProvider extends ServiceProvider | |||||
| $this->configureRateLimiting(); | $this->configureRateLimiting(); | ||||
| $this->routes(function () { | $this->routes(function () { | ||||
| Route::middleware('api') | |||||
| Route::middleware('web') | |||||
| ->prefix('api') | ->prefix('api') | ||||
| ->group(base_path('routes/api.php')); | ->group(base_path('routes/api.php')); | ||||
| @@ -44,5 +44,8 @@ class RouteServiceProvider extends ServiceProvider | |||||
| 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()); | ||||
| }); | }); | ||||
| RateLimiter::for('web', function (Request $request) { | |||||
| return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip()); | |||||
| }); | |||||
| } | } | ||||
| } | } | ||||
| @@ -0,0 +1,41 @@ | |||||
| <?php | |||||
| namespace App\Util; | |||||
| use Illuminate\Support\Facades\Route; | |||||
| use Illuminate\Support\Str; | |||||
| class RouteHelper | |||||
| { | |||||
| const ENTRY = 'entry'; | |||||
| static public function get(string $url, string $class) | |||||
| { | |||||
| return Route::get($url, [$class, self::ENTRY])->name(self::routeName($class)); | |||||
| } | |||||
| static public function post(string $url, string $class) | |||||
| { | |||||
| return Route::post($url, [$class, self::ENTRY])->name(self::routeName($class)); | |||||
| } | |||||
| static public function server(string $url, string $class) | |||||
| { | |||||
| return Route::post($url, [$class, self::ENTRY])->name(self::routeName($class)); | |||||
| } | |||||
| static public function routeName(string $class) | |||||
| { | |||||
| $ele = explode('\\', $class); | |||||
| $controllerName = array_pop($ele); | |||||
| $groupName = array_pop($ele); | |||||
| $routeName = Str::replaceLast('Controller', '', $groupName . $controllerName); | |||||
| return $routeName; | |||||
| } | |||||
| static public function webRoute(string $route) | |||||
| { | |||||
| return Str::replaceFirst('/api', '', $route); | |||||
| } | |||||
| } | |||||
| @@ -1,8 +1,5 @@ | |||||
| <?php | <?php | ||||
| use Illuminate\Http\Request; | |||||
| use Illuminate\Support\Facades\Route; | |||||
| /* | /* | ||||
| |-------------------------------------------------------------------------- | |-------------------------------------------------------------------------- | ||||
| | API Routes | | API Routes | ||||
| @@ -13,7 +10,3 @@ use Illuminate\Support\Facades\Route; | |||||
| | be assigned to the "api" middleware group. Make something great! | | be assigned to the "api" middleware group. Make something great! | ||||
| | | | | ||||
| */ | */ | ||||
| Route::middleware('auth:sanctum')->get('/user', function (Request $request) { | |||||
| return $request->user(); | |||||
| }); | |||||
| @@ -1,6 +1,6 @@ | |||||
| <?php | <?php | ||||
| use Illuminate\Support\Facades\Route; | |||||
| use App\Util\RouteHelper; | |||||
| /* | /* | ||||
| |-------------------------------------------------------------------------- | |-------------------------------------------------------------------------- | ||||
| @@ -13,6 +13,8 @@ use Illuminate\Support\Facades\Route; | |||||
| | | | | ||||
| */ | */ | ||||
| Route::get('/', function () { | |||||
| return view('welcome'); | |||||
| }); | |||||
| // ルーティングで適合しない場合はフロント側のRoutingにゆだねる | |||||
| RouteHelper::get('/{any?}', App\Http\Controllers\Web\IndexController::class)->where('any', '.*'); | |||||