瀏覽代碼

webルート整備

develop
sosuke.iwabuchi 2 年之前
父節點
當前提交
96dbbdce2f
共有 5 個檔案被更改,包括 89 行新增12 行删除
  1. +38
    -0
      app/Http/Controllers/Web/IndexController.php
  2. +4
    -1
      app/Providers/RouteServiceProvider.php
  3. +41
    -0
      app/Util/RouteHelper.php
  4. +0
    -7
      routes/api.php
  5. +6
    -4
      routes/web.php

+ 38
- 0
app/Http/Controllers/Web/IndexController.php 查看文件

@@ -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;
}
}

+ 4
- 1
app/Providers/RouteServiceProvider.php 查看文件

@@ -27,7 +27,7 @@ class RouteServiceProvider extends ServiceProvider
$this->configureRateLimiting();

$this->routes(function () {
Route::middleware('api')
Route::middleware('web')
->prefix('api')
->group(base_path('routes/api.php'));

@@ -44,5 +44,8 @@ class RouteServiceProvider extends ServiceProvider
RateLimiter::for('api', function (Request $request) {
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());
});
}
}

+ 41
- 0
app/Util/RouteHelper.php 查看文件

@@ -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);
}
}

+ 0
- 7
routes/api.php 查看文件

@@ -1,8 +1,5 @@
<?php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| API Routes
@@ -13,7 +10,3 @@ use Illuminate\Support\Facades\Route;
| be assigned to the "api" middleware group. Make something great!
|
*/

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});

+ 6
- 4
routes/web.php 查看文件

@@ -1,6 +1,6 @@
<?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', '.*');

Loading…
取消
儲存