1-Enrutamiento #
Enrutamiento #
En el siguiente ejemplo, usaremos el @Controller()decorador, necesario para definir un controlador básico. Especificaremos un prefijo de ruta opcional de cats. Usar un prefijo de ruta en el @Controller()decorador nos ayuda a agrupar rutas relacionadas y reduce la repetición de código. Por ejemplo, si queremos agrupar rutas que gestionan interacciones con una entidad cat bajo la /catsruta, podemos especificar el catsprefijo de ruta en el @Controller()decorador. De esta forma, no es necesario repetir esa parte de la ruta para cada ruta del archivo
import { Controller, Get } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Get()
findAll(): string {
return 'This action returns all cats';
}
}
Enrutamiento en NestJS vs Laravel: Explicación y Analogía
Enrutamiento en NestJS
En NestJS, el enrutamiento se maneja principalmente a través de decoradores en los controladores:
import { Controller, Get, Post, Param } from '@nestjs/common';
@Controller('users')
export class UsersController {
@Get()
findAll(): string {
return 'Todos los usuarios';
}
@Get(':id')
findOne(@Param('id') id: string): string {
return `Usuario ${id}`;
}
@Post()
create(): string {
return 'Usuario creado';
}
}Características clave:
Los decoradores como
@Controller,@Get,@Postdefinen las rutasLos parámetros de ruta se capturan con
@ParamEl enrutamiento es muy declarativo y organizado por clases
Enrutamiento en Laravel
En Laravel, las rutas típicamente se definen en archivos como routes/web.php o routes/api.php:
use App\Http\Controllers\UserController;
Route::get('/users', [UserController::class, 'index']);
Route::get('/users/{id}', [UserController::class, 'show']);
Route::post('/users', [UserController::class, 'store']);O usando resource:
Route::resource('users', UserController::class);Analogía: Sistema de Correos vs Cartero
NestJS es como un sistema de correos moderno y automatizado:
Cada departamento (controlador) sabe exactamente qué paquetes (solicitudes) manejar
Las etiquetas (decoradores) definen claramente qué va dónde
Todo está bien organizado y tipado desde el principio
Laravel es como un cartero tradicional:
Todas las cartas (rutas) se registran en una oficina central (archivo de rutas)
El cartero (Router de Laravel) sabe a qué casa (controlador) llevar cada carta
Es más flexible en la definición pero menos organizado automáticamente
Diferencias clave
Organización:
NestJS: Las rutas están adjuntas a los controladores
Laravel: Las rutas están centralizadas en archivos separados
Sintaxis:
NestJS usa decoradores TypeScript
Laravel usa métodos estáticos PHP
Tipado:
NestJS tiene tipado fuerte en rutas y parámetros
Laravel es más flexible pero menos tipado
Rutas RESTful:
En NestJS se declaran manualmente o con
@ResourceEn Laravel se pueden generar con
Route::resource
Ambos frameworks permiten middleware, agrupación de rutas y otras características avanzadas, pero con enfoques diferentes.
Comentarios
Publicar un comentario