Standard Schema Validation

NestJS 🔴 Senior

Définition

Depuis NestJS 12.0.0 (27 août 2026), les décorateurs @Body(), @Query(), @Param() et @RawBody() acceptent une option schema compatible avec la spécification Standard Schema (Zod, Valibot, ArkType). Le StandardSchemaValidationPipe valide la charge utile contre ce schema, en parallèle du flux historique class-validator qui reste entièrement supporte.

Analogie

Comme accepter un badge d'accès différent (RFID, QR code) au même portique : plusieurs formats de validation cohabitent sans casser l'existant.

Exemple de code

@Post()
create(@Body({ schema: createUserSchema }) body: CreateUserDto) {
  return this.usersService.create(body);
}

// Activation globale du pipe
app.useGlobalPipes(new StandardSchemaValidationPipe());

Cas d'usage

Valider les requêtes avec des schémas Zod/Valibot déjà utilises cote frontend, sans réécrire des DTO class-validator.

Anti-pattern

Mélanger schema Standard Schema et class-validator sur le même DTO sans convention claire dans l'équipe.

Termes liés

#core#nest12#interview

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre