13.1-Pasos para solucionar: rutas api

 

Pasos para solucionar:

1. Localiza y edita bootstrap/app.php:

El archivo que necesitas modificar está en:

text
gestor-tareas/
├── bootstrap/
│   └── app.php        ← ¡ESTE ES EL ARCHIVO QUE NECESITAS!
├── app/
│   └── Providers/
│       └── AppServiceProvider.php  ← Este es otro archivo

2. Abre y edita bootstrap/app.php:

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::

php
// 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

bash
# Si no existe, créalo
touch routes/api.php

Paso 2: Edita routes/api.php con:

php
<?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:

bash
php artisan route:clear
php artisan config:clear

Paso 5: Verifica las rutas:

bash
php artisan route:list

5. Si aún no funciona, prueba esta configuración alternativa:

Opción A: Configuración explícita en routes/api.php:

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:

php
// 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

Entradas más populares de este blog

0-Sistema de Tareas

13-CRUD en Laravel para Web y API con Rutas Normales (No Resource)

10-Introducción a Blade en Laravel con un Ejemplo Práctico