api.php 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. use App\Http\Controllers\Api\HistoryController;
  3. use App\Http\Controllers\Api\HomePageController;
  4. use App\Http\Controllers\Api\NewsController;
  5. use App\Http\Controllers\Api\ProfilePageController;
  6. use App\Http\Controllers\Api\ProjectController;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\Route;
  9. Route::get('/user', function (Request $request) {
  10. return $request->user();
  11. })->middleware('auth:sanctum');
  12. Route::prefix('{locale}')->group(function (){
  13. Route::prefix('histories')->group(function (){
  14. Route::get('/', [HistoryController::class, 'list']);
  15. });
  16. Route::prefix('home')->group(function (){
  17. Route::get('/news', [HomePageController::class, 'list']);
  18. });
  19. Route::prefix('profile')->group(function () {
  20. Route::get('/', [ProfilePageController::class, 'list']);
  21. });
  22. Route::prefix('news')->group(function (){
  23. Route::get('/', [NewsController::class, 'list']);
  24. Route::get('/{id}', [NewsController::class, 'detail'])->whereIn('locale', ["tw", "en"])->where('id', '[0-9]+');
  25. });
  26. Route::prefix('project')->group(function () {
  27. Route::get('/', [ProjectController::class, 'list']);
  28. Route::get('/{id}', [NewsController::class, 'detail'])->whereIn('locale', ["tw", "en"])->where('id', '[0-9]+');
  29. Route::get('/badges', [ProjectController::class, 'badges']);
  30. });
  31. });