Serialization

NestJS 🟡 Mid

Définition

Transformation des objets en réponse JSON via ClassSerializerInterceptor et class-transformer. Permet d'exclure des champs sensibles avec @Exclude.

Analogie

Comme un filtre photo qui masque les informations sensibles avant de publier.

Exemple de code

export class UserEntity {
  id: number;
  email: string;

  @Exclude()
  password: string;

  constructor(partial: Partial<UserEntity>) {
    Object.assign(this, partial);
  }
}

Cas d'usage

Masquer les mots de passe, tokens internes et données sensibles des réponses API.

Anti-pattern

Retourner les entités brutes de la base de données sans filtrer les champs sensibles.
#core#security#interview

En entretien

  1. Comment tu empêcherais qu'un mot de passe se retrouve dans une réponse API ?

    En utilisant ClassSerializerInterceptor avec class-transformer, et en décorant le champ password avec @Exclude() dans l'entité, comme un filtre photo qui masque les informations sensibles avant de publier. Ça transforme automatiquement l'objet en JSON en enlevant les champs exclus.

  2. Pourquoi ne pas juste retourner l'entité brute de la base de données ?

    Parce que c'est l'anti-pattern identifié : retourner les entités brutes sans filtrage expose des données sensibles comme les mots de passe ou tokens internes. La sérialisation sert justement à masquer ces champs avant l'envoi de la réponse.

Fiche mise à jour le 2026-09-27

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