OCOBO rutas (Laravel)
Objetivo
Mantener rutas modulares, consistentes y sin colisiones.
Dónde van las rutas
- •
routes/api.php: solo autenticación/base (/register,/login,/getme, etc.). - •
routes/<modulo>.php: rutas del módulo (ej.controlAcceso.php,ventanilla.php,calidad.php, ...). - •Registro de cada archivo modular:
app/Providers/RouteServiceProvider.php(prefijoapi/<modulo>).
Checklist al agregar rutas
- •Elegir el módulo y reutilizar su archivo en
routes/. - •Todas las rutas privadas deben estar dentro de
Route::middleware('auth:sanctum')->group(...). - •Agrupar por recurso con
Route::prefix()y, si aplica,->name(). - •Regla crítica de orden (para evitar que Laravel interprete
/estadisticascomo/{id}):- •primero: rutas específicas sin parámetros
- •segundo: rutas específicas con parámetros
- •último:
Route::apiResource(...)
- •Si creas un nuevo archivo
routes/<nuevoModulo>.php, también debes registrarlo enRouteServiceProvidercon su prefijo.
Plantilla recomendada (archivo de módulo)
php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Modulo\RecursoController;
Route::middleware('auth:sanctum')->group(function () {
Route::prefix('recurso')->name('modulo.recurso.')->group(function () {
// 1) Específicas SIN parámetros
Route::get('/estadisticas', [RecursoController::class, 'estadisticas'])->name('estadisticas');
// 2) Específicas CON parámetros
Route::get('/por-sede/{sedeId}', [RecursoController::class, 'listarPorSede'])->name('por-sede');
// 3) Resource AL FINAL
Route::apiResource('/', RecursoController::class)->except('create', 'edit');
});
});
Plantilla de registro (RouteServiceProvider)
php
Route::middleware('api')
->prefix('api/modulo')
->group(base_path('routes/modulo.php'));