feat: 为玩家和管理员模块新增 API 路由与中间件别名

This commit is contained in:
2026-05-08 13:47:48 +08:00
parent 2d79e38de3
commit bbf58cb076
9 changed files with 174 additions and 1 deletions

View File

@@ -0,0 +1,16 @@
<?php
namespace App\Http\Controllers\Api\V1\Admin;
use App\Http\Controllers\Controller;
use App\Support\ApiResponse;
use Illuminate\Http\JsonResponse;
/** 探路由用,上线前可删除或改为需登录 */
class PingController extends Controller
{
public function __invoke(): JsonResponse
{
return ApiResponse::success(['scope' => 'admin']);
}
}

View File

@@ -0,0 +1,27 @@
<?php
namespace App\Http\Controllers\Api\V1;
use App\Http\Controllers\Controller;
use App\Support\ApiResponse;
use Illuminate\Http\JsonResponse;
class HealthController extends Controller
{
/**
* 健康检查Next / 网关探活。路径GET /api/v1/health
*/
public function __invoke(): JsonResponse
{
$payload = [
'app' => config('app.name'),
'default_currency' => config('lottery.default_currency'),
];
if (config('app.debug')) {
$payload['laravel'] = app()->version();
}
return ApiResponse::success($payload);
}
}

View File

@@ -0,0 +1,16 @@
<?php
namespace App\Http\Controllers\Api\V1\Player;
use App\Http\Controllers\Controller;
use App\Support\ApiResponse;
use Illuminate\Http\JsonResponse;
/** 探路由用,上线前可删除或改为需登录 */
class PingController extends Controller
{
public function __invoke(): JsonResponse
{
return ApiResponse::success(['scope' => 'player']);
}
}

View File

@@ -0,0 +1,18 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
/**
* 后台 API后续在此校验管理员登录 Sanctum RBAC。
*/
class EnsureAdminApi
{
public function handle(Request $request, Closure $next): Response
{
return $next($request);
}
}

View File

@@ -0,0 +1,18 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
/**
* 玩家端 API后续在此校验 SSO / Bearer Token并解析当前 players.id。
*/
class EnsurePlayerApi
{
public function handle(Request $request, Closure $next): Response
{
return $next($request);
}
}

View File

@@ -0,0 +1,29 @@
<?php
namespace App\Support;
use Illuminate\Http\JsonResponse;
/**
* PRD / docs/04-领域字典与编码规范.md 对齐:{ code, msg, data }
*/
final class ApiResponse
{
public static function success(mixed $data = null, string $msg = 'ok', int $code = 0): JsonResponse
{
return response()->json([
'code' => $code,
'msg' => $msg,
'data' => $data,
]);
}
public static function error(string $msg, int $code, mixed $data = null, int $httpStatus = 400): JsonResponse
{
return response()->json([
'code' => $code,
'msg' => $msg,
'data' => $data,
], $httpStatus);
}
}