Module 07 ⭐⭐⭐ Difficile ~3h

🔁 API Production-Ready

Rendre une API existante robuste et observable : réponses uniformes, gestion d'erreurs standardisée, logging structuré, rate limiting, cache, et audit log.

🔧 Pipeline à mettre en place

// main.ts — configuration globale
async function bootstrap() {
  const app = await NestFactory.create(AppModule);

  // 1. Middleware
  app.use(new LoggerMiddleware().use);      // Log structuré
  app.use(new RateLimitMiddleware().use);   // 100 req/min/IP

  // 2. Guards globaux
  app.useGlobalGuards(new JwtAuthGuard(reflector));

  // 3. Interceptors globaux (ordre important !)
  app.useGlobalInterceptors(
    new LoggingInterceptor(),    // Durée de chaque requête
    new TransformInterceptor(),  // Wrapping { data, statusCode, timestamp }
    new TimeoutInterceptor(),    // 10s timeout
  );

  // 4. Pipes
  app.useGlobalPipes(new ValidationPipe({ whitelist: true, transform: true }));

  // 5. Exception filters
  app.useGlobalFilters(new AllExceptionsFilter());

  await app.listen(3000);
}

✅ Composants à implémenter

← Cours ✏️ Exercices 🧠 QCM NS07 Module 08 →