api.php 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. });
  20. Route::prefix('profile')->group(function () {
  21. Route::get('/', [ProfilePageController::class, 'list']);
  22. });
  23. Route::prefix('news')->group(function (){
  24. Route::get('/', [NewsController::class, 'list']);
  25. Route::get('/{id}', [NewsController::class, 'detail'])->whereIn('locale', ["tw", "en"])->where('id', '[0-9]+');
  26. });
  27. Route::prefix('project')->group(function () {
  28. Route::get('/', [ProjectController::class, 'list']);
  29. Route::get('/{id}', [ProjectController::class, 'detail'])->whereIn('locale', ["tw", "en"])->where('id', '[0-9]+');
  30. Route::get('/badges', [ProjectController::class, 'badges']);
  31. });
  32. Route::prefix("esg")->group(function () {
  33. Route::get("histories", [EsgController::class, 'histories']);
  34. });
  35. });