馃З Rutas y controladores para APIs
C贸mo conectar tus endpoints con controladores API
Laravel separa las rutas web (web.php) y las rutas API (api.php).
Las rutas definidas en routes/api.php no usan sesiones ni cookies, y est谩n optimizadas
para respuestas JSON.
Cada ruta API apunta normalmente a un m茅todo dentro de un controlador que gestiona la l贸gica del recurso.
馃摌 Estructura b谩sica de una ruta API
En Laravel, las rutas API se definen con el archivo routes/api.php.
A diferencia de las rutas web, 茅stas ya tienen prefijo /api por defecto.
routes/api.php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\ProductController;
Route::get('/products', [ProductController::class, 'index']);
Route::get('/products/{id}', [ProductController::class, 'show']);
Route::post('/products', [ProductController::class, 'store']);
Route::put('/products/{id}', [ProductController::class, 'update']);
Route::delete('/products/{id}', [ProductController::class, 'destroy']);
馃敼 Laravel incluye el prefijo /api autom谩ticamente, por lo que la ruta completa ser铆a
https://tusitio.com/api/products.
⚙️ Controlador API de ejemplo
Cada ruta apunta a un m茅todo dentro de un controlador. Por convenci贸n, los controladores de API se ubican en
app/Http/Controllers/Api/.
app/Http/Controllers/Api/ProductController.php
json(Product::all(), 200);
}
public function show($id) {
$product = Product::find($id);
if (!$product) {
return response()->json(['message' => 'Producto no encontrado'], 404);
}
return response()->json($product, 200);
}
public function store(Request $request) {
$product = Product::create($request->all());
return response()->json($product, 201);
}
public function update(Request $request, $id) {
$product = Product::find($id);
if (!$product) return response()->json(['error' => 'No existe'], 404);
$product->update($request->all());
return response()->json($product, 200);
}
public function destroy($id) {
$product = Product::find($id);
if (!$product) return response()->json(['error' => 'No encontrado'], 404);
$product->delete();
return response()->json(['message' => 'Eliminado correctamente'], 200);
}
}
?>
馃З Demo visual: conexi贸n ruta → controlador → respuesta
Selecciona una ruta para ver qu茅 m茅todo del controlador se ejecuta y la respuesta simulada:
✅ Buenas pr谩cticas
- Define todas tus rutas API dentro de
routes/api.php. - Usa controladores dedicados (por ejemplo,
ProductController) en lugar de closures. - Utiliza
php artisan make:controller NombreController --apipara generar controladores optimizados para APIs. - Devuelve siempre JSON y c贸digos HTTP correctos (200, 201, 404, 422, etc.).
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias