- ライブラリの登録
npm i class-validator, class-transformer -S
- ValidationPipe有効化
async function bootstrap() { const app = await NestFactory.create(AppModule); app.useGlobalPipes(new ValidationPipe());
@UsePipes(new ValidationPipe()) を使ってメソッドごとの設定も可
- DTO の作成
export class UserDto implements User { @IsString() readonly id: string; @IsString() readonly name: string; @IsNumber() readonly age: number; @IsString() @IsOptional() readonly organization: string; }
- 実行例
% curl -XPOST localhost:3000/api/v1/user -H "Content-Type: application/json" -d '{"id": "aa", "name": "aa", "age": "aaa"}' {"statusCode":400,"message":["age must be a number conforming to the specified constraints"],"error":"Bad Request"}