Formation NestJS
Concevez des applications backend professionnelles, structurées et évolutives avec NestJS et TypeScript. Maîtrisez l'architecture modulaire, les controllers, les services, l'injection de dépendances, les API REST, les bases de données, l'authentification, la sécurité, les tests et le déploiement.
Concevoir des backends robustes avec NestJS
NestJS est un framework backend basé sur Node.js et TypeScript permettant de concevoir des applications serveur fortement structurées, modulaires et facilement maintenables.
Son architecture repose notamment sur les modules, controllers et providers. Cette organisation facilite la séparation des responsabilités, la réutilisation des composants et la croissance progressive d'une application complexe.
Cette formation permet d'apprendre à utiliser NestJS pour développer des API REST professionnelles, connecter des bases de données, valider les données, protéger les ressources et organiser une application selon des principes d'architecture modernes.
Les participants travaillent progressivement sur une véritable application backend afin d'acquérir les méthodes utilisées dans les projets professionnels.
Les compétences visées
À l'issue de la formation, le participant doit être capable de construire une application NestJS complète, structurée, sécurisée et exploitable dans un environnement professionnel.
Maîtriser NestJS
Comprendre le fonctionnement du framework, son organisation et ses concepts fondamentaux.
Structurer une application
Construire une architecture modulaire reposant sur des responsabilités clairement définies.
Développer des API REST
Concevoir des endpoints REST cohérents, documentés et maintenables.
Gérer les données
Connecter NestJS à une base de données et organiser la persistance des informations.
Sécuriser le backend
Implémenter authentification, permissions, validation et protections serveur.
Préparer la production
Tester, optimiser, configurer et déployer une application NestJS.
De l'architecture NestJS au déploiement d'une API professionnelle
Une progression pédagogique complète permettant de maîtriser les concepts fondamentaux du framework avant d'aborder les problématiques avancées de sécurité, qualité logicielle et architecture.
Découvrir NestJS et son architecture
Comprendre le positionnement du framework et les principes qui structurent une application NestJS.
- Présentation de NestJS
- Positionnement dans l'écosystème Node.js
- NestJS et TypeScript
- Architecture backend moderne
- Découverte du Nest CLI
- Création d'un premier projet
- Structure des dossiers générés
- Point d'entrée main.ts
- AppModule
- Cycle général d'une requête
TypeScript appliqué à NestJS
Consolider les mécanismes TypeScript indispensables au développement d'applications NestJS.
- Types primitifs
- Interfaces
- Type aliases
- Classes TypeScript
- Modificateurs d'accès
- Héritage
- Génériques
- Décorateurs
- Métadonnées
- Typage des objets métier
- Promises
- async / await
Modules et organisation fonctionnelle
Structurer l'application en blocs fonctionnels cohérents afin de faciliter sa maintenance.
- Comprendre le décorateur @Module()
- Root Module
- Feature Modules
- imports
- providers
- controllers
- exports
- Encapsulation des providers
- Réutilisation entre modules
- Organisation par domaine fonctionnel
- Modules partagés
- Modules dynamiques
Controllers et gestion des routes
Exposer les fonctionnalités du backend au travers de routes HTTP clairement définies.
- Décorateur @Controller()
- Définition des routes
- @Get()
- @Post()
- @Put()
- @Patch()
- @Delete()
- Paramètres de routes
- Query parameters
- Request body
- Headers
- Réponses HTTP
Providers, services et injection de dépendances
Séparer la logique métier des controllers et comprendre le système d'injection de NestJS.
- Concept de provider
- Décorateur @Injectable()
- Création de services
- Injection par constructeur
- Dependency Injection
- Inversion of Control
- Portée des providers
- Custom providers
- useClass
- useValue
- useFactory
- Séparation Controller / Service
DTO, validation et transformation des données
Contrôler précisément les données reçues par l'API avant leur traitement.
- Data Transfer Objects
- Création de DTO
- Typage des entrées
- Validation des données
- ValidationPipe
- Transformation automatique
- Validation globale
- DTO de création
- DTO de mise à jour
- Gestion des champs optionnels
- Réutilisation des DTO
- Messages d'erreur de validation
Middleware, Pipes, Guards et Interceptors
Maîtriser le cycle d'exécution NestJS et intervenir aux différentes étapes du traitement d'une requête.
- Middleware NestJS
- Création de middleware personnalisé
- Pipes
- Transformation des paramètres
- Guards
- Contrôle des autorisations
- Interceptors
- Transformation des réponses
- Logging avec interceptor
- Mesure du temps d'exécution
- ExecutionContext
- Portée locale et globale
Gestion professionnelle des erreurs
Construire une stratégie d'erreur cohérente et exploitable par les clients de l'API.
- Exceptions HTTP
- HttpException
- Exceptions prédéfinies
- NotFoundException
- BadRequestException
- UnauthorizedException
- ForbiddenException
- Exception Filters
- Création d'un filtre personnalisé
- Format uniforme des erreurs
- Journalisation
- Masquage des informations sensibles
Concevoir une API REST avec NestJS
Appliquer les conventions REST à une architecture NestJS professionnelle.
- Ressources REST
- Endpoints
- Méthodes HTTP
- CRUD complet
- Codes HTTP
- DTO par opération
- Pagination
- Filtrage
- Recherche
- Tri des résultats
- Versionnement de l'API
- Bonnes pratiques REST
Bases de données et persistance
Connecter l'application NestJS à une base de données et organiser la couche de persistance.
- Architecture de la couche Data
- Bases SQL et NoSQL
- Configuration de la connexion
- Variables d'environnement
- Entités et modèles
- Repositories
- CRUD base de données
- Relations entre entités
- Pagination
- Transactions
- Migrations
- Optimisation des requêtes
Authentification et JWT
Construire un système sécurisé de création de compte, connexion et protection des routes.
- Module d'authentification
- Inscription utilisateur
- Hash des mots de passe
- Vérification des identifiants
- JSON Web Token
- Création des tokens
- Validation des tokens
- AuthGuard
- Routes protégées
- Utilisateur courant
- Refresh Token
- Déconnexion
Autorisations, rôles et permissions
Définir précisément les ressources accessibles selon le profil de l'utilisateur.
- Authentification versus autorisation
- Gestion des rôles
- Administrateur et utilisateur
- Décorateurs personnalisés
- Création d'un RolesGuard
- Metadata NestJS
- Permissions par route
- Permissions métier
- Contrôle d'accès
- RBAC
Sécurité d'une application NestJS
Mettre en place les protections essentielles d'une API exposée sur Internet.
- Sécurisation des entrées
- Validation systématique
- Protection des mots de passe
- Gestion des secrets
- Variables d'environnement
- Headers de sécurité
- Helmet
- Configuration CORS
- Rate Limiting
- Protection contre les attaques brute-force
- Sécurisation des erreurs
- Audit des dépendances
Configuration et environnements
Séparer proprement la configuration du code et préparer plusieurs environnements d'exécution.
- ConfigModule
- Fichiers .env
- Configuration globale
- Configuration typée
- Variables obligatoires
- Validation de configuration
- Environnement de développement
- Environnement de test
- Environnement de production
- Protection des secrets
Documentation d'API avec OpenAPI / Swagger
Produire automatiquement une documentation claire et exploitable des endpoints de l'application.
- Principes OpenAPI
- Intégration Swagger
- Documentation des controllers
- Documentation des opérations
- Paramètres de routes
- Documentation des DTO
- Réponses HTTP
- Erreurs possibles
- Authentification Bearer
- Interface Swagger UI
Upload et gestion des fichiers
Traiter des fichiers envoyés à l'API de manière contrôlée et sécurisée.
- Upload multipart
- Interceptors de fichiers
- Fichier unique
- Upload multiple
- Validation des extensions
- Limitation de taille
- Nommage sécurisé
- Stockage local
- Stockage externe
- Gestion des erreurs d'upload
Tests unitaires et tests End-to-End
Vérifier automatiquement le comportement des différents composants de l'application.
- Stratégie de tests
- TestingModule
- Tests des services
- Tests des controllers
- Mocks
- Providers simulés
- Tests des Guards
- Tests d'intégration
- Tests End-to-End
- Test des endpoints HTTP
- Test des erreurs
- Couverture de code
Cache, performances et optimisation
Améliorer les temps de réponse et préparer l'application à supporter davantage de charge.
- Mesure des performances
- Logging des temps de réponse
- Cache applicatif
- Cache de données
- Optimisation des requêtes SQL
- Pagination
- Compression HTTP
- Gestion des ressources
- Traitements asynchrones
- Fastify comme alternative HTTP
Architecture avancée et bonnes pratiques
Organiser une application complexe afin qu'elle reste compréhensible, testable et facilement évolutive.
- Architecture par domaine
- Séparation des responsabilités
- Controllers fins
- Services métier
- Repository Pattern
- Interfaces et abstractions
- SOLID
- Découplage des dépendances
- Modules réutilisables
- Dette technique
- Maintenabilité
- Documentation technique
Déploiement et mise en production
Préparer l'application NestJS pour un environnement de production fiable et sécurisé.
- Build NestJS
- Configuration production
- Variables d'environnement
- Démarrage de l'application
- Gestion des processus
- Logs applicatifs
- Reverse proxy
- HTTPS
- Base de données en production
- Migrations
- CI/CD
- Maintenance et monitoring
Développer une API métier complète avec NestJS
Les participants construisent progressivement une véritable application backend NestJS. Le projet permet de mobiliser les concepts d'architecture, de données, d'authentification, de validation, de sécurité, de tests et de documentation étudiés pendant la formation.
Ce que le participant saura réaliser
Architecture NestJS
- Créer et configurer un projet NestJS.
- Structurer l'application en modules.
- Développer controllers et services.
- Utiliser les providers.
- Exploiter l'injection de dépendances.
Développement d'API
- Concevoir une API REST.
- Créer des DTO.
- Valider les données entrantes.
- Gérer les erreurs.
- Documenter l'API avec OpenAPI.
Sécurité et données
- Connecter une base de données.
- Mettre en place l'authentification.
- Sécuriser les routes.
- Implémenter rôles et permissions.
- Appliquer les protections backend.
Qualité et production
- Écrire des tests unitaires.
- Réaliser des tests End-to-End.
- Optimiser les performances.
- Configurer plusieurs environnements.
- Préparer le déploiement en production.
Une approche centrée sur la pratique
Chaque notion technique est accompagnée d'une mise en pratique afin de transformer progressivement les concepts NestJS en compétences opérationnelles.
Apports techniques
Compréhension approfondie de NestJS, TypeScript et de l'architecture backend.
Démonstrations
Les fonctionnalités sont présentées et développées étape par étape.
Exercices pratiques
Manipulations régulières pour maîtriser les composants essentiels du framework.
Projet applicatif
Développement progressif d'une véritable API métier avec NestJS.
Connaissances recommandées
- Connaître JavaScript moderne.
- Comprendre async / await et les Promises.
- Posséder des bases en TypeScript.
- Connaître les principes de Node.js.
- Comprendre les bases du protocole HTTP.
- Connaître le principe d'une API REST est recommandé.
À qui s'adresse cette formation ?
- Développeurs Node.js.
- Développeurs backend.
- Développeurs JavaScript et TypeScript.
- Développeurs fullstack.
- Développeurs souhaitant structurer des applications backend complexes.
- Équipes techniques travaillant sur des API ou plateformes SaaS.
Modalités pédagogiques
Progression encadrée
Les notions sont abordées du socle NestJS jusqu'aux problématiques d'architecture avancée.
Mise en pratique
Chaque notion importante est accompagnée d'exercices de développement backend.
Projet professionnel
La construction d'une API complète permet de mobiliser l'ensemble des compétences acquises.
Passez à une architecture backend professionnelle avec NestJS
Vous souhaitez organiser une formation NestJS, développer les compétences de votre équipe ou faire le point sur votre projet de formation ? Échangez directement avec Instants Web Formation afin de définir le parcours le plus adapté.
Trouvez la formation adaptée à votre niveau réel.
Quelques minutes suffisent pour identifier vos acquis, repérer vos axes de progression et choisir un parcours de formation réellement adapté à vos compétences et à vos objectifs professionnels.
Votre progression