RouteRegistrationService.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <?php
  2. namespace App\Module\OpenAPI\Services;
  3. use Illuminate\Support\Facades\Route;
  4. /**
  5. * 路由注册服务
  6. *
  7. * 使用注解方式注册OpenAPI模块的路由
  8. */
  9. class RouteRegistrationService
  10. {
  11. /**
  12. * 注册API路由
  13. *
  14. * @return void
  15. */
  16. public function registerApiRoutes(): void
  17. {
  18. // 用户相关API路由
  19. Route::get('/user/info', [\App\Module\OpenAPI\Controllers\ApiController::class, 'getUserInfo'])
  20. ->name('openapi.user.info');
  21. Route::get('/user/list', [\App\Module\OpenAPI\Controllers\ApiController::class, 'getUserList'])
  22. ->name('openapi.user.list');
  23. // 游戏相关API路由
  24. Route::get('/game/stats', [\App\Module\OpenAPI\Controllers\ApiController::class, 'getGameStats'])
  25. ->name('openapi.game.stats');
  26. // 资金相关API路由
  27. Route::get('/fund/balance', [\App\Module\OpenAPI\Controllers\ApiController::class, 'getFundBalance'])
  28. ->name('openapi.fund.balance');
  29. // 物品相关API路由(待实现)
  30. Route::get('/item/list', function () {
  31. return response()->json([
  32. 'success' => false,
  33. 'message' => '物品API正在开发中,请使用Handler机制实现',
  34. ], 501);
  35. })->middleware('openapi.scope:ITEM_READ')->name('openapi.item.list');
  36. // 交易相关API路由(待实现)
  37. Route::get('/trade/history', function () {
  38. return response()->json([
  39. 'success' => false,
  40. 'message' => '交易API正在开发中,请使用Handler机制实现',
  41. ], 501);
  42. })->middleware('openapi.scope:TRADE_READ')->name('openapi.trade.history');
  43. }
  44. /**
  45. * 注册管理API路由
  46. *
  47. * @return void
  48. */
  49. public function registerManagementRoutes(): void
  50. {
  51. // 应用管理路由
  52. Route::prefix('app')->group(function () {
  53. Route::get('/info', [\App\Module\OpenAPI\Controllers\AppController::class, 'info'])
  54. ->name('openapi.app.info');
  55. Route::get('/scopes', [\App\Module\OpenAPI\Controllers\AppController::class, 'scopes'])
  56. ->name('openapi.app.scopes');
  57. Route::get('/stats', [\App\Module\OpenAPI\Controllers\AppController::class, 'stats'])
  58. ->name('openapi.app.stats');
  59. Route::get('/quota', [\App\Module\OpenAPI\Controllers\AppController::class, 'quota'])
  60. ->name('openapi.app.quota');
  61. Route::put('/update', [\App\Module\OpenAPI\Controllers\AppController::class, 'update'])
  62. ->name('openapi.app.update');
  63. Route::post('/regenerate-secret', [\App\Module\OpenAPI\Controllers\AppController::class, 'regenerateSecret'])
  64. ->name('openapi.app.regenerate_secret');
  65. });
  66. // Webhook管理路由
  67. Route::prefix('webhook')->group(function () {
  68. Route::get('/', [\App\Module\OpenAPI\Controllers\WebhookController::class, 'index'])
  69. ->name('openapi.webhook.index');
  70. Route::post('/', [\App\Module\OpenAPI\Controllers\WebhookController::class, 'store'])
  71. ->name('openapi.webhook.store');
  72. Route::get('/{id}', [\App\Module\OpenAPI\Controllers\WebhookController::class, 'show'])
  73. ->name('openapi.webhook.show');
  74. Route::put('/{id}', [\App\Module\OpenAPI\Controllers\WebhookController::class, 'update'])
  75. ->name('openapi.webhook.update');
  76. Route::delete('/{id}', [\App\Module\OpenAPI\Controllers\WebhookController::class, 'destroy'])
  77. ->name('openapi.webhook.destroy');
  78. Route::post('/{id}/test', [\App\Module\OpenAPI\Controllers\WebhookController::class, 'test'])
  79. ->name('openapi.webhook.test');
  80. Route::post('/{id}/regenerate-secret', [\App\Module\OpenAPI\Controllers\WebhookController::class, 'regenerateSecret'])
  81. ->name('openapi.webhook.regenerate_secret');
  82. });
  83. }
  84. /**
  85. * 注册认证相关路由
  86. *
  87. * @return void
  88. */
  89. public function registerAuthRoutes(): void
  90. {
  91. Route::prefix('auth')->group(function () {
  92. Route::post('/token', [\App\Module\OpenAPI\Controllers\AuthController::class, 'token'])
  93. ->name('openapi.auth.token');
  94. Route::post('/revoke', [\App\Module\OpenAPI\Controllers\AuthController::class, 'revoke'])
  95. ->name('openapi.auth.revoke');
  96. Route::post('/jwt', [\App\Module\OpenAPI\Controllers\AuthController::class, 'jwt'])
  97. ->name('openapi.auth.jwt');
  98. Route::post('/verify-jwt', [\App\Module\OpenAPI\Controllers\AuthController::class, 'verifyJwt'])
  99. ->name('openapi.auth.verify_jwt');
  100. });
  101. }
  102. /**
  103. * 注册所有路由
  104. *
  105. * @return void
  106. */
  107. public function registerAllRoutes(): void
  108. {
  109. // 注册认证路由(无需认证)
  110. Route::prefix('api/openapi')->middleware('api')->group(function () {
  111. $this->registerAuthRoutes();
  112. });
  113. // 注册需要认证的API路由
  114. Route::prefix('api/openapi')->middleware(['api', 'openapi'])->group(function () {
  115. $this->registerApiRoutes();
  116. $this->registerManagementRoutes();
  117. });
  118. }
  119. }