13.1-Pasos para solucionar: rutas api
Pasos para solucionar:
1. Localiza y edita bootstrap/app.php:
El archivo que necesitas modificar está en:
gestor-tareas/
├── bootstrap/
│ └── app.php ← ¡ESTE ES EL ARCHIVO QUE NECESITAS!
├── app/
│ └── Providers/
│ └── AppServiceProvider.php ← Este es otro archivo2. Abre y edita bootstrap/app.php:
<?php
use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
// AÑADE ESTA LÍNEA PARA API ↓
api: __DIR__.'/../routes/api.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
->withMiddleware(function (Middleware $middleware) {
//
})
->withExceptions(function (Exceptions $exceptions) {
//
})->create();3. Si tu bootstrap/app.php ya tiene contenido, solo añade la línea api::
Busca la sección ->withRouting( y añade la línea api::
// ANTES:
->withRouting(
web: __DIR__.'/../routes/web.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
// DESPUÉS:
->withRouting(
web: __DIR__.'/../routes/web.php',
api: __DIR__.'/../routes/api.php', // ← AÑADE ESTA LÍNEA
commands: __DIR__.'/../routes/console.php',
health: '/up',
)4. Pasos completos para configurar API en Laravel 12:
Paso 1: Verifica que tengas routes/api.php
# Si no existe, créalo
touch routes/api.phpPaso 2: Edita routes/api.php con:
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\TareaController;
// Rutas API
Route::get('/tareas', [TareaController::class, 'index']);
Route::post('/tareas', [TareaController::class, 'store']);
Route::get('/tareas/{id}', [TareaController::class, 'show']);
Route::put('/tareas/{id}', [TareaController::class, 'update']);
Route::delete('/tareas/{id}', [TareaController::class, 'destroy']);Paso 3: Edita bootstrap/app.php (¡EL PASO MÁS IMPORTANTE!)
Asegúrate de que tenga la línea api: en withRouting().
Paso 4: Limpia cache:
php artisan route:clear
php artisan config:clearPaso 5: Verifica las rutas:
php artisan route:list5. Si aún no funciona, prueba esta configuración alternativa:
Opción A: Configuración explícita en routes/api.php:
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\TareaController;
// Usa Route::middleware() explícitamente
Route::middleware(['api'])->prefix('api')->group(function () {
Route::get('/tareas', [TareaController::class, 'index']);
Route::post('/tareas', [TareaController::class, 'store']);
Route::get('/tareas/{id}', [TareaController::class, 'show']);
Route::put('/tareas/{id}', [TareaController::class, 'update']);
Route::delete('/tareas/{id}', [TareaController::class, 'destroy']);
});Opción B: Define rutas directamente en routes/web.php temporalmente:
Al final de routes/web.php, añade:
// Rutas API temporales
Route::prefix('api')->group(function () {
Route::get('/tareas', [App\Http\Controllers\Api\TareaController::class, 'index']);
Route::get('/test', function() {
return response()->json(['message' => 'API funciona']);
});
});
Comentarios
Publicar un comentario