Controladores en NestJS: Creación y Gestión de Endpoints HTTP

Clase 7 de 24Curso de Backend con NestJS

Contenido del curso

REST API

Integridad de datos

Resumen

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.

// app.controller.ts import { Controller, Get } from '@nestjs/common'; import { AppService } from './app.service'; @Controller() export class AppController { constructor(private readonly appService: AppService) {} @Get() getHello(): string { return this.appService.getHello(); } }

Los controladores deben ser importados en un módulo para que sean reconocidos los endpoints.

// app.module.ts import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; @Module({ imports: [], controllers: [ // Imports de Controladores AppController ], }) export class AppModule {}

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.

// app.service.ts import { Injectable } from '@nestjs/common'; @Injectable() export class AppService { getHello(): string { return 'Hello World!'; } }

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.

// app.controller.ts @Controller() export class AppController { constructor(private readonly appService: AppService) {} @Get() getHello(): string { return this.appService.getHello(); } @Get('new-endpoint') newEndpoint(): string { return 'New endpoint'; } }

Ingresa a esta nueva ruta desde localhost:3000/new-endpoint para visualizar su respuesta y así crear los endpoints que necesites.


Contribución creada por: Kevin Fiorentino.

      Controladores en NestJS: Creación y Gestión de Endpoints HTTP