RouteRegistrationService.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  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::post('/diamond/recharge', [\App\Module\OpenAPI\Controllers\ApiController::class, 'diamondRecharge'])
  31. ->name('openapi.diamond.recharge');
  32. Route::post('/diamond/withdraw', [\App\Module\OpenAPI\Controllers\ApiController::class, 'diamondWithdraw'])
  33. ->name('openapi.diamond.withdraw');
  34. Route::get('/diamond/recharge-balance', [\App\Module\OpenAPI\Controllers\ApiController::class, 'getRechargeAccountBalance'])
  35. ->name('openapi.diamond.recharge_balance');
  36. Route::get('/diamond/withdraw-balance', [\App\Module\OpenAPI\Controllers\ApiController::class, 'getWithdrawAccountBalance'])
  37. ->name('openapi.diamond.withdraw_balance');
  38. // 物品相关API路由(待实现)
  39. Route::get('/item/list', function () {
  40. return response()->json([
  41. 'success' => false,
  42. 'message' => '物品API正在开发中,请使用Handler机制实现',
  43. ], 501);
  44. })->middleware('openapi.scope:ITEM_READ')->name('openapi.item.list');
  45. // 交易相关API路由(待实现)
  46. Route::get('/trade/history', function () {
  47. return response()->json([
  48. 'success' => false,
  49. 'message' => '交易API正在开发中,请使用Handler机制实现',
  50. ], 501);
  51. })->middleware('openapi.scope:TRADE_READ')->name('openapi.trade.history');
  52. }
  53. /**
  54. * 注册管理API路由
  55. *
  56. * @return void
  57. */
  58. public function registerManagementRoutes(): void
  59. {
  60. // 应用管理路由
  61. Route::prefix('app')->group(function () {
  62. Route::get('/info', [\App\Module\OpenAPI\Controllers\AppController::class, 'info'])
  63. ->name('openapi.app.info');
  64. Route::get('/scopes', [\App\Module\OpenAPI\Controllers\AppController::class, 'scopes'])
  65. ->name('openapi.app.scopes');
  66. Route::get('/stats', [\App\Module\OpenAPI\Controllers\AppController::class, 'stats'])
  67. ->name('openapi.app.stats');
  68. Route::get('/quota', [\App\Module\OpenAPI\Controllers\AppController::class, 'quota'])
  69. ->name('openapi.app.quota');
  70. Route::put('/update', [\App\Module\OpenAPI\Controllers\AppController::class, 'update'])
  71. ->name('openapi.app.update');
  72. Route::post('/regenerate-secret', [\App\Module\OpenAPI\Controllers\AppController::class, 'regenerateSecret'])
  73. ->name('openapi.app.regenerate_secret');
  74. });
  75. // Webhook管理路由
  76. Route::prefix('webhook')->group(function () {
  77. Route::get('/', [\App\Module\OpenAPI\Controllers\WebhookController::class, 'index'])
  78. ->name('openapi.webhook.index');
  79. Route::post('/', [\App\Module\OpenAPI\Controllers\WebhookController::class, 'store'])
  80. ->name('openapi.webhook.store');
  81. Route::get('/{id}', [\App\Module\OpenAPI\Controllers\WebhookController::class, 'show'])
  82. ->name('openapi.webhook.show');
  83. Route::put('/{id}', [\App\Module\OpenAPI\Controllers\WebhookController::class, 'update'])
  84. ->name('openapi.webhook.update');
  85. Route::delete('/{id}', [\App\Module\OpenAPI\Controllers\WebhookController::class, 'destroy'])
  86. ->name('openapi.webhook.destroy');
  87. Route::post('/{id}/test', [\App\Module\OpenAPI\Controllers\WebhookController::class, 'test'])
  88. ->name('openapi.webhook.test');
  89. Route::post('/{id}/regenerate-secret', [\App\Module\OpenAPI\Controllers\WebhookController::class, 'regenerateSecret'])
  90. ->name('openapi.webhook.regenerate_secret');
  91. });
  92. }
  93. /**
  94. * 注册认证相关路由
  95. *
  96. * @return void
  97. */
  98. public function registerAuthRoutes(): void
  99. {
  100. Route::prefix('auth')->group(function () {
  101. Route::post('/token', [\App\Module\OpenAPI\Controllers\AuthController::class, 'token'])
  102. ->name('openapi.auth.token');
  103. Route::post('/revoke', [\App\Module\OpenAPI\Controllers\AuthController::class, 'revoke'])
  104. ->name('openapi.auth.revoke');
  105. Route::post('/jwt', [\App\Module\OpenAPI\Controllers\AuthController::class, 'jwt'])
  106. ->name('openapi.auth.jwt');
  107. Route::post('/verify-jwt', [\App\Module\OpenAPI\Controllers\AuthController::class, 'verifyJwt'])
  108. ->name('openapi.auth.verify_jwt');
  109. });
  110. }
  111. /**
  112. * 注册所有路由
  113. *
  114. * @return void
  115. */
  116. public function registerAllRoutes(): void
  117. {
  118. // 注册认证路由(无需认证)
  119. Route::prefix('api/openapi')->middleware('api')->group(function () {
  120. $this->registerAuthRoutes();
  121. });
  122. // 注册需要认证的API路由
  123. Route::prefix('api/openapi')->middleware(['api', 'openapi'])->group(function () {
  124. $this->registerApiRoutes();
  125. $this->registerManagementRoutes();
  126. });
  127. }
  128. }