Aller au contenu

Processus Backend

Ce document décrit les processus spécifiques au backend. Voir le workflow global pour le processus projet.

Développement d'un endpoint

1. Définition

Besoin identifié
Définir route (méthode, path, params)
Définir DTOs (request/response)
Documenter dans OpenAPI

2. Implémentation

Créer Controller
Créer Service
Créer Repository (si DB)
Ajouter Guards/Interceptors

3. Tests

Tests unitaires Service
Tests E2E Controller
Vérifier coverage

Structure d'un module NestJS

src/modules/<module>/
├── <module>.module.ts
├── <module>.controller.ts
├── <module>.service.ts
├── dto/
│   ├── create-<entity>.dto.ts
│   └── update-<entity>.dto.ts
├── entities/
│   └── <entity>.entity.ts
└── __tests__/
    ├── <module>.service.spec.ts
    └── <module>.e2e-spec.ts

Migrations base de données

Créer une migration

npm run migration:generate -- -n NomMigration

Appliquer les migrations

npm run migration:run

Rollback

npm run migration:revert

Gestion des erreurs

Exceptions standard

Exception Code HTTP Usage
BadRequestException 400 Validation échouée
UnauthorizedException 401 Non authentifié
ForbiddenException 403 Non autorisé
NotFoundException 404 Ressource non trouvée
ConflictException 409 Conflit (ex: doublon)
InternalServerErrorException 500 Erreur serveur

Format réponse erreur

{
  "statusCode": 400,
  "message": "Description de l'erreur",
  "error": "Bad Request"
}

Logging

Niveaux

  • error : Erreurs critiques
  • warn : Avertissements
  • log : Informations importantes
  • debug : Debugging (dev only)

Bonnes pratiques

  • Ne jamais logger de données personnelles
  • Ne jamais logger de secrets/clés
  • Logger les actions importantes (auth, modifications)

Référence complète

Voir le workflow global.