InicioBlogLaravel

馃幀 Configurar una API de Laravel 12 desde Cero

Autor: J. Luis, 29 noviembre, 2025

Configurar una API RESTful en Laravel 12 desde cero con este tutorial paso a paso para principiantes. Instala, configura base de datos, rutas, CRUD y autenticaci贸n

¿Listo para explorar el desarrollo backend con Laravel? Si eres principiante y buscas configurar una API RESTful en Laravel desde cero, este tutorial actualizado te lleva de la mano. Basado en la documentación oficial de Laravel 12.x (actualizada a noviembre 2025), corregimos detalles clave como la instalación vía Laravel Installer, PHP 8.4 y el comando install:api para Sanctum. Nada de teoría pesada: comandos listos para copiar, enfocados en la práctica.

Laravel 12.x, estable desde marzo 2025, optimiza el rendimiento con soporte nativo para PHP 8.4, starter kits mejorados y configuración simplificada para APIs. Ideal para apps móviles o frontends como React/Vue. Al final, tendrás una API con CRUD, autenticación y base de datos. ¡Adelante!

¿Por Qué Configurar una API en Laravel?

Laravel destaca para APIs por:

  • Estructura intuitiva: Rutas, controladores y Eloquent listos.
  • Seguridad fácil: Sanctum integrado vía install:api.
  • Escalabilidad: Queues, notificaciones y caching optimizados.
  • Comunidad activa: Docs claras en laravel.com.

Este guía para principiantes en Laravel  evita errores comunes, configurando solo lo esencial.

Requisitos Previos para Configurar tu API Laravel

Requisitos Previos para Configurar tu API Laravel

Requisitos Previos para Configurar tu API Laravel

Instala:

  • PHP 8.4 o superior (verifica: php -v).
  • Composer.
  • Laravel Installer: composer global require laravel/installer.
  • SQLite (para BD simple; sin servidor extra).
  • Editor como VS Code y terminal.

Tarda 10-15 min. ¿Ok? Paso 1.


Paso 1: Instalar y Configurar un Proyecto Laravel Nuevo

Paso 1: Instalar y Configurar un Proyecto Laravel Nuevo

Paso 1: Instalar y Configurar un Proyecto Laravel Nuevo

Usa el Laravel Installer para una setup moderna.

  1. En terminal:

    text

    laravel new mi-api-laravel-12
    Selecciona: Testing framework (Pest), Database (SQLite), Starter kit (Ninguno para API pura).
  2. Entra al proyecto:

    text

    cd mi-api-laravel-12
  3. Instala dependencias frontend (opcional para API):

    text

    npm install && npm run build
  4. Inicia el servidor dev completo (servidor + queue + Vite):

    text

    composer run dev
    Accede a http://localhost:8000. ¿Bienvenida de Laravel? ¡Configurado! (Alternativa: php artisan serve para solo servidor).

Paso 2: Configurar la Base de Datos en Laravel

SQLite por simplicidad en principiantes.

  1. Crea el archivo BD (automático si elegiste SQLite en install):

    text

    touch database/database.sqlite
  2. Edita .env:

    text

    DB_CONNECTION=sqlite
    DB_DATABASE=/ruta/absoluta/a/tu/proyecto/database/database.sqlite
    (Ej: /Users/tuusuario/mi-api-laravel-12/database/database.sqlite). Opcional: DB_FOREIGN_KEYS=false para deshabilitar constraints.
  3. Verifica y migra:

    text

    php artisan migrate:status
    php artisan migrate
    ¡BD lista! Para prod, cambia a MySQL en .env.

Paso 3: Configurar Rutas API B谩sicas en Laravel

Paso 3: Configurar Rutas API B谩sicas en Laravel

Paso 3: Configurar Rutas API B谩sicas en Laravel

Rutas API en routes/api.php, prefijadas con /api automáticamente.

  1. Instala setup API (crea api.php y Sanctum):

    text

    php artisan install:api
  2. Abre routes/api.php y agrega ruta de prueba:

    php

    <?php
    
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\Route;
    
    Route::get('/hello', function (Request $request) {
        return response()->json(['mensaje' => '¡Hola desde tu API Laravel 12!']);
    });
  3. Prueba: http://localhost:8000/api/hello. ¿JSON? ¡Rutas configuradas!

Personaliza prefijo en bootstrap/app.php si necesitas (ej: apiPrefix: 'api/v1').

Keywords: rutas API Laravel 12, endpoints RESTful principiantes.


Paso 4: Configurar un Modelo y Controlador para tu API

Ejemplo: API de "Posts" con CRUD.

  1. Genera:

    text

    php artisan make:model Post -mcr
    Crea: Modelo Post, migración, controlador resource PostController, requests para validación.
  2. Edita migración database/migrations/xxxx_create_posts_table.php:

    php

    public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->id();
            $table->string('titulo');
            $table->text('contenido');
            $table->timestamps();
        });
    }
  3. Migra:

    text

    php artisan migrate
  4. En app/Models/Post.php, fillable:

    php

    protected $fillable = ['titulo', 'contenido'];
  5. En routes/api.php, ruta resource:

    php

    use App\Http\Controllers\PostController;
    
    Route::apiResource('posts', PostController::class);
    Configura GET/POST/PUT/DELETE en /api/posts.
  6. En app/Http/Controllers/PostController.php, métodos básicos:

    php

    public function index()
    {
        return Post::all();
    }
    
    public function store(Request $request)
    {
        $request->validate(['titulo' => 'required', 'contenido' => 'required']);
        return Post::create($request->all());
    }
    (Similar para show/update/destroy).

¡CRUD listo! Prueba con Postman: POST /api/posts con {"titulo": "Mi Post", "contenido": "Aquí contenido"}.


Paso 5: Configurar Autenticaci贸n API con Laravel Sanctum

Paso 5: Configurar Autenticaci贸n API con Laravel Sanctum

Paso 5: Configurar Autenticaci贸n API con Laravel Sanctum

install:api ya instaló Sanctum. Protege rutas.

  1. En app/Models/User.php, trait (si no está):

    php

    use Laravel\Sanctum\HasApiTokens;
    
    class User extends Authenticatable
    {
        use HasApiTokens, HasFactory, Notifiable;
        // ...
    }
  2. Publica config (opcional):

    text

    php artisan config:publish sanctum
  3. En routes/api.php, protege:

    php

    Route::middleware('auth:sanctum')->apiResource('posts', PostController::class);
  4. Ruta login (agrega antes de middleware):

    php

    use Illuminate\Support\Facades\Auth;
    
    Route::post('/login', function (Request $request) {
        $credentials = $request->validate([
            'email' => 'required|email',
            'password' => 'required',
        ]);
    
        if (Auth::attempt($credentials)) {
            $user = Auth::user();
            $token = $user->createToken('api-token')->plainTextToken;
            return response()->json(['token' => $token]);
        }
    
        return response()->json(['error' => 'Credenciales inválidas'], 401);
    });

Usa Authorization: Bearer tu-token en Postman. Para expiración, edita config/sanctum.php: 'expiration' => 525600, (1 año).

Tip principiantes: Sanctum para tokens API; docs: laravel.com/docs/12.x/sanctum.


Paso 6: Probar y Depurar tu API Laravel

  • Postman/Insomnia para endpoints.
  • Logs: storage/logs/laravel.log.
  • Rutas: php artisan route:list.

Errores comunes: Verifica .env, permisos (chmod 755 storage/). Usa composer run dev para entorno full.

Conclusión: Tu API Laravel Configurada y Segura 馃殌

¡Genial! Has configurado una API completa en Laravel desde cero, alineado con docs actualizadas. Expándela con paginación o integra frontend. La práctica es clave.

¿Preguntas? Comenta abajo. Comparte si ayudó y suscríbete para más guías Laravel 12 principiantes.

Recursos:

Última actualización: 16 Noviembre 2025. Corregido con cambios en install:api y PHP 8.4.

¡Configura y despliega! 馃挭



Leido 125 veces | 0 usuarios

C贸digo fuente no disponible.

Compartir link del tutorial con tus amigos

Codea Applications

M茅xico, Colombia, Espa帽a, Venezuela, Argentina, Bolivia, Per煤