Hoy en día casi todas las aplicaciones necesitan comunicarse con otras aplicaciones. Por ejemplo:

  • una app móvil que consume datos,
  • un frontend en JavaScript,
  • o incluso servicios externos.

La forma más común de hacerlo es mediante APIs REST.

Si trabajas con Laravel, crear una API es bastante sencillo gracias a todas las herramientas que incluye el framework.

En este tutorial vamos a crear una API REST completa paso a paso, con operaciones CRUD (crear, leer, actualizar y eliminar datos). Al final tendrás una API funcional que podrás probar fácilmente con Postman.

1. Crear un nuevo proyecto Laravel

Primero necesitamos crear un proyecto nuevo. Si tienes instalado Composer, puedes hacerlo con este comando:

composer create-project laravel/laravel laravel-api

Después entra en la carpeta del proyecto:

cd laravel-api

Ahora inicia el servidor de desarrollo de Laravel:

php artisan serve

Si todo ha ido bien, podrás abrir tu navegador y visitar http://localhost:8000.

2. Configurar la base de datos

Ahora vamos a configurar la conexión a la base de datos. Abre el archivo .env y busca estas variables:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_api
DB_USERNAME=root
DB_PASSWORD=

Asegúrate de colocar los datos correctos según tu entorno.

Después ejecuta las migraciones para crear las tablas iniciales de Laravel:

php artisan migrate

3. Crear el modelo y la migración

Para este ejemplo vamos a crear una API que gestione productos. Laravel permite crear el modelo y la migración con un solo comando:

php artisan make:model Product -m

Este comando crea:

  • el modelo Product,
  • una migración para la tabla products.

Ahora abre el archivo de migración que está en database/migrations y define las columnas de la tabla:

public function up()
{
    Schema::create('products', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->text('description')->nullable();
        $table->decimal('price', 10, 2);
        $table->timestamps();
    });
}

Después ejecuta nuevamente las migraciones:

php artisan migrate

Con esto ya tendrás la tabla products en tu base de datos.

4. Crear el controlador de la API

Ahora vamos a crear el controlador que manejará nuestra API. Ejecuta este comando:

php artisan make:controller Api/ProductController --api

Este controlador se encargará de las operaciones principales:

  • listar productos,
  • crear productos,
  • actualizar productos,
  • eliminar productos.

5. Crear las rutas de la API

Las rutas de las APIs en Laravel se definen en el archivo routes/api.php. Añade la siguiente línea:

use App\Http\Controllers\Api\ProductController;

Route::apiResource('products', ProductController::class);

Con esta sola línea Laravel crea automáticamente todas las rutas necesarias:

Método Endpoint
GET /api/products
POST /api/products
GET /api/products/{id}
PUT /api/products/{id}
DELETE /api/products/{id}

6. Implementar los métodos del controlador

Ahora vamos a implementar la lógica del controlador. Primero importa las clases necesarias:

use App\Models\Product;
use Illuminate\Http\Request;

Obtener todos los productos

public function index()
{
    $products = Product::all();

    return response()->json(['success' => true, 'data' => $products]);
}

Este método devuelve todos los productos en formato JSON.

Crear un producto

public function store(Request $request)
{
    $product = Product::create($request->all());

    return response()->json(['success' => true, 'data' => $product]);
}

Mostrar un producto

public function show($id)
{
    $product = Product::findOrFail($id);

    return response()->json($product);
}

Actualizar un producto

public function update(Request $request, $id)
{
    $product = Product::findOrFail($id);
    $product->update($request->all());

    return response()->json(['success' => true, 'data' => $product]);
}

Eliminar un producto

public function destroy($id)
{
    Product::destroy($id);

    return response()->json(['success' => true]);
}

7. Probar la API con Postman

Ahora que la API está lista, podemos probarla con Postman:

Acción Petición
Obtener productos GET /api/products
Crear un producto POST /api/products
Actualizar un producto PUT /api/products/1
Eliminar un producto DELETE /api/products/1

Para crear un producto, envía este cuerpo en formato JSON:

{ "name": "Laptop", "description": "Powerful laptop", "price": 1200 }

8. Algunas buenas prácticas al crear APIs

Cuando desarrolles APIs con Laravel, es recomendable seguir algunas buenas prácticas:

  • validar siempre los datos recibidos,
  • devolver respuestas JSON consistentes,
  • usar los códigos HTTP correctos,
  • implementar autenticación,
  • usar paginación cuando haya muchos resultados.

Esto hará que tu API sea más robusta y fácil de mantener.

Conclusión

Como has visto, crear una API REST con Laravel es bastante sencillo. En pocos pasos hemos creado una API capaz de:

  • listar productos,
  • crear nuevos productos,
  • actualizar datos,
  • eliminar registros.

Además, gracias a herramientas como Postman, probar la API es muy rápido.

A partir de aquí puedes mejorar tu proyecto agregando autenticación, validaciones más avanzadas o incluso documentación para tu API.