52 lines
1.9 KiB
PHP
52 lines
1.9 KiB
PHP
<?php
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
use App\Http\Controllers\Api\PromptController;
|
|
use App\Http\Controllers\Api\Admin\ApiConfigController;
|
|
use App\Http\Controllers\Api\Frontend\LoginController;
|
|
use App\Http\Controllers\Api\Frontend\RegisterController;
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| API Routes
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Here is where you can register API routes for your application. These
|
|
| routes are loaded by the RouteServiceProvider and all of them will
|
|
| be assigned to the "api" middleware group.
|
|
|
|
|
*/
|
|
|
|
Route::middleware(['auth:sanctum', 'rate.limit.prompts'])->group(function () {
|
|
Route::post('/prompt', [PromptController::class, 'process']);
|
|
});
|
|
|
|
// API 路由群組
|
|
Route::prefix('v1')->group(function () {
|
|
// 管理員 API 路由
|
|
Route::prefix('admin')
|
|
->middleware(['auth:sanctum', 'check.role:admin'])
|
|
->group(function () {
|
|
// API 提供者管理
|
|
Route::prefix('providers')->group(function () {
|
|
Route::get('/', [ApiConfigController::class, 'index']);
|
|
Route::post('/', [ApiConfigController::class, 'store']);
|
|
Route::delete('/{provider_id}', [ApiConfigController::class, 'destroy']);
|
|
Route::post('/{provider_id}/activate', [ApiConfigController::class, 'activate']);
|
|
});
|
|
});
|
|
});
|
|
|
|
// 前端 API 路由
|
|
Route::prefix('frontend')->group(function () {
|
|
// 公開路由
|
|
Route::post('/login', [LoginController::class, 'login']);
|
|
Route::post('/register', [RegisterController::class, 'register']);
|
|
|
|
// 需要認證的路由
|
|
Route::middleware(['auth:sanctum', 'check.status'])->group(function () {
|
|
Route::post('/logout', [LoginController::class, 'logout']);
|
|
Route::post('/send-prompt', [PromptController::class, 'sendPrompt'])
|
|
->middleware('throttle:prompts');
|
|
});
|
|
});
|