prepare global validationpipe

This commit is contained in:
Roland Schneider 2025-11-18 18:39:33 +01:00
parent 5e5a4fc505
commit d5644b6044
4 changed files with 40 additions and 2 deletions

View File

@ -20,3 +20,28 @@ Authorization: Bearer {{auth_token}}
POST {{apiBaseUrl}}/auth/logout POST {{apiBaseUrl}}/auth/logout
Accept: application/json Accept: application/json
Authorization: Bearer {{auth_token}} Authorization: Bearer {{auth_token}}
### GET request with parameter
GET {{apiBaseUrl}}/products
Accept: application/json
### Post
POST {{apiBaseUrl}}/products
Accept: application/json
Content-Type: application/json
{
"name": "p3",
"price": 3,
"is_available": true
}
### GET
# curl -i http://httpbin.org/ip
GET http://httpbin.org/ip
###

View File

@ -13,13 +13,14 @@
"@nestjs/config": "^4.0.2", "@nestjs/config": "^4.0.2",
"@nestjs/core": "^11.0.1", "@nestjs/core": "^11.0.1",
"@nestjs/jwt": "^11.0.1", "@nestjs/jwt": "^11.0.1",
"@nestjs/mapped-types": "^2.1.0",
"@nestjs/passport": "^11.0.5", "@nestjs/passport": "^11.0.5",
"@nestjs/platform-express": "^11.0.1", "@nestjs/platform-express": "^11.0.1",
"@nestjs/swagger": "^11.2.1", "@nestjs/swagger": "^11.2.1",
"@nestjs/typeorm": "^11.0.0", "@nestjs/typeorm": "^11.0.0",
"bcrypt": "^5.1.1", "bcrypt": "^5.1.1",
"class-transformer": "^0.5.1", "class-transformer": "^0.5.1",
"class-validator": "^0.14.0", "class-validator": "^0.14.2",
"passport": "^0.7.0", "passport": "^0.7.0",
"passport-jwt": "^4.0.1", "passport-jwt": "^4.0.1",
"pg": "^8.16.3", "pg": "^8.16.3",

View File

@ -27,13 +27,14 @@
"@nestjs/config": "^4.0.2", "@nestjs/config": "^4.0.2",
"@nestjs/core": "^11.0.1", "@nestjs/core": "^11.0.1",
"@nestjs/jwt": "^11.0.1", "@nestjs/jwt": "^11.0.1",
"@nestjs/mapped-types": "^2.1.0",
"@nestjs/passport": "^11.0.5", "@nestjs/passport": "^11.0.5",
"@nestjs/platform-express": "^11.0.1", "@nestjs/platform-express": "^11.0.1",
"@nestjs/swagger": "^11.2.1", "@nestjs/swagger": "^11.2.1",
"@nestjs/typeorm": "^11.0.0", "@nestjs/typeorm": "^11.0.0",
"bcrypt": "^5.1.1", "bcrypt": "^5.1.1",
"class-transformer": "^0.5.1", "class-transformer": "^0.5.1",
"class-validator": "^0.14.0", "class-validator": "^0.14.2",
"passport": "^0.7.0", "passport": "^0.7.0",
"passport-jwt": "^4.0.1", "passport-jwt": "^4.0.1",
"pg": "^8.16.3", "pg": "^8.16.3",

View File

@ -2,6 +2,7 @@ import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module'; import { AppModule } from './app.module';
import { DvbookingLoggerService } from './logger/dvbooking-logger.service'; import { DvbookingLoggerService } from './logger/dvbooking-logger.service';
import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger'; import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
import { ValidationPipe } from '@nestjs/common';
async function bootstrap() { async function bootstrap() {
const app = await NestFactory.create(AppModule); const app = await NestFactory.create(AppModule);
@ -18,6 +19,16 @@ async function bootstrap() {
const document = SwaggerModule.createDocument(app, config); const document = SwaggerModule.createDocument(app, config);
SwaggerModule.setup('api', app, document); SwaggerModule.setup('api', app, document);
app.useGlobalPipes(
new ValidationPipe({
whitelist: true, // Strips away properties that do not have any decorators
transform: true, // Automatically transform payloads to be objects typed according to their DTO classes
transformOptions: {
enableImplicitConversion: true, // Allows class-transformer to convert string primitives to their target types
},
}),
);
await app.listen(process.env.PORT ?? 3000); await app.listen(process.env.PORT ?? 3000);
} }
bootstrap(); bootstrap();