api.php 1.8KB

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