Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Introducción a controladores

6/23
Recursos
  
import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';

@Controller()
export class AppController {
  constructor(private readonly appService: AppService) {}

  @Get()
  getHello(): string {
    return 'Hola mundo!';
  }

  @Get('nuevo')
  newEndpoint() {
    return 'yo soy nuevo';
  }

  @Get('/ruta/') // 👈 With slashes 
  hello() {
    return 'con /sas/';
  }
}

Aportes 23

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Recuerda con / (slashes) o sin ellos los controladores de NestJS resuelven la ruta.

@Get('nuevo')  // 👈 Without slashes 
newEndpoint() {
  return 'yo soy nuevo';
}

@Get('/ruta/') // 👈 With slashes 
hello() {
  return 'con /sas/';
}

Arquitectura de una aplicacion

Controllers

Las funciones de un controlador son:

  • Procesar la peticion HTTP
  • Obtener los datos de entrada desde las distinta fuentes (body, params, query)
  • Validar los datos de entrada
  • Llamar al servicio correspondiente
  • Responder con una petición HTTP con la información solicitada o con la información del error que se produjo

Services

Son el corazón de nuestra api. No solo se encarga de conectar el controlador con las librerías sino que además, llama a otros servicios.

La lógica de negocio se centra en esta parte

Libraries

Es la parte que se encarga de conectarse con las librerías externas. Librerias como bases de datos u otros apis.

todo me recuerda a Angular jaja

¿Como se le hace para poner eso? creo que es su cuenta de git en el vs code

Chicos si les sale este error de eslint Parsing error: Cannot read file ‘…/tsconfig.json’.eslint
Se soluciona agregando en el archivo de .eslintrc.js en parserOptions: tsconfigRootDir: __dirname,

RESUMEN

Los controladores son los encargados de recibir los request de nuestra aplicación.

Estas request son las peticiones que llegan a nuestra aplicación desde un cliente web, móvil, etc, que vienen a través del protocolo HTTP.

Entre sus funciones están el de validar los request, que sus permisos y datos sean los correctos, y según el resultado de esa validación permitir su acceso a la capa de servicios para poder obtener los datos.

Al ser una petición que viaja a través del protocolo HTTP va a utilizar los verbos:
- GET : Obtener recursos
- PUT : Actualizar recursos
- POST : Crear recursos
- DELETE : Eliminar recursos

Los controladores se definen con una clase acompañada de un decorador, quien va a indicar cual será el comportamiento de dicho decorador.

Los decoradores a usar son:

@Controller()   => Define que la clase usada es un controlador
@Get('nuevo-endpoint') => Crear un nuevo endpoint

Nota: Para correr la aplicación en modo de desarrollo:

npm run start:dev

Para declarar un nuevo endpoint en el Controlador usamos:

@Get(‘nuevo-endpoint’)
newEndpoint() {
return ‘I am new endpoint’;
}

Si quieres conocer más a fondo cómo funciona el patrón Decorator o Decorador. Te dejo este vídeo en el que se explica su funcionamiento 😄

Hace poco estudie sobre patrones de diseño, y al escuchar sobre estos decoradores, investigue si se trataba específicamente del patrón de diseño decorator y encontré lo siguiente.

The Decorator is a special syntax that provides us with a way to attach additional logic to classes, methods, accessors, parameters, and properties. They are used heavily in frameworks like Angular and NestJS

Fuente

npm run start:dev

un decorador a nest es lo que una anotación es a java

Excelente esta sintaxis! 👏

hasta el momento es muy parecido a angular

this course is crazy!
love it 🤍

Decoradores: “Los decoradores (decorators en inglés) son una propuesta para incluir en JavaScript que nos permite añadir anotaciones y metadatos o cambiar el comportamiento de clases, propiedades, métodos, parámetros y accesors. Con TypeScript podemos usarlos activando la propiedad experimentalDecorators del tsconfig.json de nuestro proyecto o si decidimos compilar mediante el comando tsc, colocar siempre la opción de --experimentalDecorators —target ES5.”

Metodos HTPP

  • POST => Crear
  • GET => Obtener
  • PUT => Editar
  • DELETE => Eliminar
  • Entre otros

Esta clase me recuerda a Flask.
/
Vean el Curso de Flask de Platzi, se los recomiendo mucho.

ejemplos de end points

app.controller.ts

controladores con decoradores

los controladores manejan todos los request que llegan

Soy Frontend con React y me interesa aprender, backend para en unos meses volverme full stack.
Nest, simplemente me parecio hermoso

**
CONTROLADORES

**
Los controladores son los componentes más importantes. Son los responsables de manejar las solicitudes entrantes y devolver las respuestas al cliente.

El mecanismo de enrutamiento gestiona qué controlador recibe qué solicitudes. cada controlador puede tener más de una ruta y cada ruta puede realizar diferentes trabajos.

Los enrutadores manejarán los métodos de nuestra RestAPI como GET , PUT , POST , DELETE , etc. solicitudes y respuestas salientes.