GraphQL Resolver

NestJS 🟡 Mid

Définition

Classe décorée @Resolver qui définit les opérations GraphQL (queries, mutations, subscriptions) en approche code-first avec des décorateurs TypeScript.

Analogie

Comme un serveur de restaurant avec un menu a la carte : le client choisit exactement ce qu'il veut recevoir.

Exemple de code

@Resolver(() => User)
export class UserResolver {
  constructor(private userService: UserService) {}

  @Query(() => [User])
  users() { return this.userService.findAll(); }

  @Mutation(() => User)
  createUser(@Args('input') input: CreateUserInput) {
    return this.userService.create(input);
  }
}

Cas d'usage

Exposer une API GraphQL code-first avec typage automatique du schema depuis TypeScript.

Anti-pattern

Mettre de la logique métier dans le resolver au lieu de la déléguer au service.
#communication#interview

En entretien

  1. C'est quoi un GraphQL Resolver en approche code-first avec NestJS ?

    C'est une classe décorée @Resolver qui définit les opérations GraphQL - queries, mutations, subscriptions - avec des décorateurs TypeScript, un peu comme un serveur de restaurant à la carte où le client choisit exactement ce qu'il veut recevoir. Le schema est typé automatiquement depuis le code TypeScript.

  2. Où est-ce que tu mettrais la logique métier dans un resolver GraphQL ?

    Jamais dans le resolver directement : je la délègue au service, l'anti-pattern décrit étant justement de mettre de la logique métier dans le resolver. Le resolver ne fait qu'orchestrer l'appel au service, comme users() qui appelle userService.findAll().

Fiche mise à jour le 2026-09-27

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