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.