El concepto más básico para desarrollar una aplicación con NestJS son los Controladores.
Qué son los controladores en NestJS
Los Controladores manejarán las rutas o endpoints que la aplicación necesite, además de validar los permisos del usuario, filtro y manipulación de datos.
Estructura de un controlador
La aplicación de NestJS creada por defecto con el CLI con el comando nest new <project-name> trae consigo un controlador básico con el nombre app.controller.ts. Verás que dicho archivo contiene una clase que a su vez posee un decorador llamado @Controller().
Dicho decorador le indica al compilador de NestJS que esta clase tendrá el comportamiento de un controlador.
Los controladores deben ser importados en un módulo para que sean reconocidos los endpoints.
// app.module.tsimport{Module}from'@nestjs/common';import{AppController}from'./app.controller';@Module({imports:[],controllers:[// Imports de ControladoresAppController],})exportclassAppModule{}
El controlador importa un servicio que son los responsables de la lógica y obtención de datos desde una BBDD que el controlador requiere.
Puedes correr el servidor de NestJS con el comando npm run start:dev e ingresar a la ruta localhost:3000/ para visualizar el contenido que el controlador envía.
Si quieres crear una nueva ruta, basta con crear un método en la clase del controlador y colocarle el decorador @Get() con un nombre para el nuevo endpoint.