Los DTO ayudan con el tipado y la validación de datos, además de indicar la obligatoriedad de los mismos para que los registros se creen completos. Es importante también evitar que haya datos que no deben estar en las solicitudes, ya que podrían ser ataques maliciosos.
Cómo hacer la prohibición de datos
Busca el archivo main.ts
que contiene el bootstrap de tu aplicación, es decir, el punto inicial de la misma. Agrega aquí la siguiente configuración.
import { NestFactory } from '@nestjs/core';
import { ValidationPipe } from '@nestjs/common';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.useGlobalPipes(
new ValidationPipe({
whitelist: true,
forbidNonWhitelisted: true,
disableErrorMessages: true,
})
);
await app.listen(process.env.PORT || 3000);
}
bootstrap();
Importa ValidationPipe desde @nestjs/common
y configura en true las propiedades whitelist
para ignorar datos que no estén en el DTO. Usa forbidNonWhitelisted
para lanzar errores si existen datos prohibidos y disableErrorMessages
que es recomendable activarlo solo en producción para no enviar mensajes de error y no dar información al front-end.
De esta simple manera, tus endpoints gracias a los DTO son súper profesionales, seguros y contribuyen a una buena experiencia de desarrollo.
app.useGlobalPipes(
new ValidationPipe({
whitelist: true,
forbidNonWhitelisted: true,
}),
);
Contribución creada por: Kevin Fiorentino.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?