Files
wiki_travel_site/routes/api.php
T
2026-04-28 16:10:27 +03:00

49 lines
1.7 KiB
PHP

<?php
use App\Http\Controllers\AuthController;
use App\Http\Controllers\API\CityController;
use App\Http\Controllers\API\FavoriteController;
use App\Http\Controllers\API\TripController;
use App\Http\Controllers\API\UserController;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
*/
// Authentication routes (public)
Route::post('/register', [AuthController::class, 'register']);
Route::post('/login', [AuthController::class, 'login']);
// Public city routes (no authentication required)
Route::prefix('cities')->group(function () {
Route::get('/search', [CityController::class, 'search']);
Route::get('/{city}', [CityController::class, 'show']);
Route::get('/{city}/attractions', [CityController::class, 'attractions']);
Route::get('/{city}/map-data', [CityController::class, 'mapData']);
});
// Protected routes (require authentication)
Route::middleware('auth:sanctum')->group(function () {
// Auth routes
Route::post('/logout', [AuthController::class, 'logout']);
Route::get('/user', [AuthController::class, 'user']);
// User profile
Route::get('/profile', [UserController::class, 'show']);
Route::put('/profile', [UserController::class, 'update']);
// Cities (protected actions)
Route::post('/cities', [CityController::class, 'store']);
// Favorites
Route::get('/favorites', [FavoriteController::class, 'index']);
Route::post('/favorites/{city}', [FavoriteController::class, 'store']);
Route::delete('/favorites/{city}', [FavoriteController::class, 'destroy']);
// Trips
Route::apiResource('trips', TripController::class);
});