| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- <?php
- use Illuminate\Support\Facades\Route;
- use App\Module\OpenAPI\AdminControllers\AppController;
- use App\Module\OpenAPI\AdminControllers\KeyController;
- use App\Module\OpenAPI\AdminControllers\LogController;
- use App\Module\OpenAPI\AdminControllers\StatController;
- /*
- |--------------------------------------------------------------------------
- | OpenAPI Admin Routes
- |--------------------------------------------------------------------------
- |
- | 这里定义OpenAPI模块的后台管理路由
- | 所有路由都需要通过后台认证中间件
- |
- */
- // OpenAPI后台管理路由组
- Route::prefix('openapi')->middleware(['admin.auth', 'admin.permission'])->group(function () {
-
- // 应用管理
- Route::resource('apps', AppController::class)->names([
- 'index' => 'admin.openapi.apps.index',
- 'create' => 'admin.openapi.apps.create',
- 'store' => 'admin.openapi.apps.store',
- 'show' => 'admin.openapi.apps.show',
- 'edit' => 'admin.openapi.apps.edit',
- 'update' => 'admin.openapi.apps.update',
- 'destroy' => 'admin.openapi.apps.destroy',
- ]);
- // 应用管理扩展路由
- Route::prefix('apps')->group(function () {
- Route::post('{id}/regenerate-secret', [AppController::class, 'regenerateSecret'])
- ->name('admin.openapi.apps.regenerate_secret');
-
- Route::post('{id}/toggle-status', [AppController::class, 'toggleStatus'])
- ->name('admin.openapi.apps.toggle_status');
-
- Route::get('{id}/stats', [AppController::class, 'stats'])
- ->name('admin.openapi.apps.stats');
-
- Route::get('{id}/logs', [AppController::class, 'logs'])
- ->name('admin.openapi.apps.logs');
- });
- // API密钥管理
- Route::resource('keys', KeyController::class)->names([
- 'index' => 'admin.openapi.keys.index',
- 'create' => 'admin.openapi.keys.create',
- 'store' => 'admin.openapi.keys.store',
- 'show' => 'admin.openapi.keys.show',
- 'edit' => 'admin.openapi.keys.edit',
- 'update' => 'admin.openapi.keys.update',
- 'destroy' => 'admin.openapi.keys.destroy',
- ]);
- // API密钥管理扩展路由
- Route::prefix('keys')->group(function () {
- Route::post('{id}/regenerate', [KeyController::class, 'regenerate'])
- ->name('admin.openapi.keys.regenerate');
-
- Route::post('{id}/toggle-status', [KeyController::class, 'toggleStatus'])
- ->name('admin.openapi.keys.toggle_status');
- });
- // 调用日志管理
- Route::resource('logs', LogController::class)->only(['index', 'show', 'destroy'])->names([
- 'index' => 'admin.openapi.logs.index',
- 'show' => 'admin.openapi.logs.show',
- 'destroy' => 'admin.openapi.logs.destroy',
- ]);
- // 日志管理扩展路由
- Route::prefix('logs')->group(function () {
- Route::delete('batch-delete', [LogController::class, 'batchDelete'])
- ->name('admin.openapi.logs.batch_delete');
-
- Route::post('export', [LogController::class, 'export'])
- ->name('admin.openapi.logs.export');
-
- Route::get('chart-data', [LogController::class, 'chartData'])
- ->name('admin.openapi.logs.chart_data');
- });
- // 统计分析管理 - 使用Resource注解自动注册,无需手动定义
- // 统计分析扩展路由
- Route::prefix('stats')->group(function () {
- Route::get('dashboard', [StatController::class, 'dashboard'])
- ->name('admin.openapi.stats.dashboard');
-
- Route::get('export', [StatController::class, 'export'])
- ->name('admin.openapi.stats.export');
-
- Route::get('chart-data', [StatController::class, 'chartData'])
- ->name('admin.openapi.stats.chart_data');
-
- Route::post('generate', [StatController::class, 'generate'])
- ->name('admin.openapi.stats.generate');
- });
- // 系统配置
- Route::prefix('config')->group(function () {
- Route::get('/', function () {
- return view('admin.openapi.config.index');
- })->name('admin.openapi.config.index');
-
- Route::post('update', function () {
- // 配置更新逻辑
- return redirect()->back()->with('success', '配置更新成功');
- })->name('admin.openapi.config.update');
- });
- // 权限管理
- Route::prefix('scopes')->group(function () {
- Route::get('/', function () {
- $scopeService = app(\App\Module\OpenAPI\Services\ScopeService::class);
- $scopeGroups = $scopeService->getScopeGroups();
-
- return view('admin.openapi.scopes.index', compact('scopeGroups'));
- })->name('admin.openapi.scopes.index');
- });
- // Webhook管理
- Route::prefix('webhooks')->group(function () {
- Route::get('/', function () {
- $webhooks = \App\Module\OpenAPI\Models\OpenApiWebhook::with('app')
- ->orderBy('created_at', 'desc')
- ->paginate(20);
-
- return view('admin.openapi.webhooks.index', compact('webhooks'));
- })->name('admin.openapi.webhooks.index');
-
- Route::get('{id}', function ($id) {
- $webhook = \App\Module\OpenAPI\Models\OpenApiWebhook::with('app')->findOrFail($id);
-
- return view('admin.openapi.webhooks.show', compact('webhook'));
- })->name('admin.openapi.webhooks.show');
-
- Route::post('{id}/test', function ($id) {
- $webhook = \App\Module\OpenAPI\Models\OpenApiWebhook::findOrFail($id);
- $webhookService = app(\App\Module\OpenAPI\Services\WebhookService::class);
-
- $result = $webhookService->testWebhook($webhook);
-
- return response()->json($result);
- })->name('admin.openapi.webhooks.test');
- });
- // 限流管理
- Route::prefix('rate-limits')->group(function () {
- Route::get('/', function () {
- $rateLimits = \App\Module\OpenAPI\Models\OpenApiRateLimit::with('app')
- ->orderBy('created_at', 'desc')
- ->paginate(20);
-
- return view('admin.openapi.rate_limits.index', compact('rateLimits'));
- })->name('admin.openapi.rate_limits.index');
-
- Route::get('stats', function () {
- $rateLimitService = app(\App\Module\OpenAPI\Services\RateLimitService::class);
-
- // 获取限流统计数据
- $stats = [];
- $apps = \App\Module\OpenAPI\Models\OpenApiApp::all();
-
- foreach ($apps as $app) {
- $stats[$app->app_id] = $rateLimitService->getRateLimitStats($app->app_id);
- }
-
- return view('admin.openapi.rate_limits.stats', compact('stats'));
- })->name('admin.openapi.rate_limits.stats');
-
- Route::post('{appId}/reset', function ($appId) {
- $rateLimitService = app(\App\Module\OpenAPI\Services\RateLimitService::class);
- $rateLimitService->resetRateLimit($appId);
-
- return redirect()->back()->with('success', '限流计数已重置');
- })->name('admin.openapi.rate_limits.reset');
- });
- // 监控面板
- Route::prefix('monitor')->group(function () {
- Route::get('/', function () {
- // 获取实时监控数据
- $data = [
- 'total_apps' => \App\Module\OpenAPI\Models\OpenApiApp::count(),
- 'active_apps' => \App\Module\OpenAPI\Models\OpenApiApp::where('status', 'ACTIVE')->count(),
- 'today_requests' => \App\Module\OpenAPI\Models\OpenApiLog::whereDate('created_at', today())->count(),
- 'today_errors' => \App\Module\OpenAPI\Models\OpenApiLog::whereDate('created_at', today())
- ->where('response_code', '>=', 400)->count(),
- ];
-
- return view('admin.openapi.monitor.index', compact('data'));
- })->name('admin.openapi.monitor.index');
-
- Route::get('realtime', function () {
- // 实时数据API
- $data = [
- 'timestamp' => now()->timestamp,
- 'requests_per_minute' => \App\Module\OpenAPI\Models\OpenApiLog::where('created_at', '>=', now()->subMinute())->count(),
- 'errors_per_minute' => \App\Module\OpenAPI\Models\OpenApiLog::where('created_at', '>=', now()->subMinute())
- ->where('response_code', '>=', 400)->count(),
- 'active_ips' => \App\Module\OpenAPI\Models\OpenApiLog::where('created_at', '>=', now()->subMinute())
- ->distinct('ip_address')->count(),
- ];
-
- return response()->json($data);
- })->name('admin.openapi.monitor.realtime');
- });
- // 工具页面
- Route::prefix('tools')->group(function () {
- Route::get('/', function () {
- return view('admin.openapi.tools.index');
- })->name('admin.openapi.tools.index');
-
- Route::get('api-tester', function () {
- return view('admin.openapi.tools.api_tester');
- })->name('admin.openapi.tools.api_tester');
-
- Route::post('test-api', function () {
- // API测试逻辑
- return response()->json(['success' => true, 'message' => 'API测试完成']);
- })->name('admin.openapi.tools.test_api');
- });
- });
|