Service

NestJS 🟢 Junior

Definition

Provider dedie a la logique metier, annote @Injectable. Il encapsule les operations de domaine et est injecte dans les controllers ou autres services.

Analogie

Comme le chef cuisinier d'un restaurant : le serveur (controller) prend la commande mais c'est le chef qui cuisine.

Exemple de code

@Injectable()
export class UserService {
  constructor(private repo: UserRepository) {}

  async findAll(): Promise<User[]> {
    return this.repo.find();
  }
}

Cas d'usage

Centraliser la logique metier pour qu'elle soit testable independamment des controllers.

Anti-pattern

Acceder directement au repository depuis le controller en bypassant le service.
#core#interview