Aller au contenu

Projet API complet

Objectif

Créer une API complète avec une base de données MongoDB, un serveur Express et Mongoose.

Attention

Le projet suivant a été généré avec la version du 12 septembre 2025 du générateur express typescript. Il se peut que certaines parties du code ne fonctionnent pas avec les versions plus récentes du générateur.

Simulacre

Pour tester un projet complet en mongoose, il faut utiliser un simulacre.

Voici la séquence d'appel normal :

type:video

Voici la séquence d'appel avec le simulacre (notez que le simulacre intercepte les appels à mongoose pour éviter de toucher à la BD :

type:video

Étape 1 - Initialisation du projet

Générer le projet avec le générateur express-typescript :

console
npx express-generator-typescript auteur_mongoose_simulacre

Ajouter le module Mongoose à votre application :

console
npm install mongoose

Ajouter les tests de mongoose :

console
npm i @jazim/mock-mongoose -D

Étape 2 - Préparer la connexion à la base de données

Créer la variable d'environnement pour l'URI de MongoDB :

config/.env.development
{!auteur_mongoose_simulacre/config/.env.development!}

Configurer EnvVars pour exposer la variable d'environnement :

src/common/EnvVars.ts
{!auteur_mongoose_simulacre/src/common/constants/ENV.ts!}

Démarer la connexion à MongoDB :

src/index.ts
{!auteur_mongoose_simulacre/src/index.ts!}

Étape 3 - Créer le schéma Mongoose

src/models/Auteur.ts
{!auteur_mongoose_simulacre/src/models/Auteur.ts!}

Étape 4 - Créer le repo

src/repos/AuteurRepo.ts
{!auteur_mongoose_simulacre/src/repos/AuteurRepo.ts!}

Étape 5 - Créer le service

src/services/AuteurService.ts
{!auteur_mongoose_simulacre/src/services/AuteurService.ts!}

Étape 6 - Créer la route

src/routes/AuteurRoutes.ts
{!auteur_mongoose_simulacre/src/routes/AuteurRoutes.ts!}

Étape 7 - Créer le chemin de l'API

src/common/constants/Paths.ts
{!auteur_mongoose_simulacre/src/common/constants/Paths.ts!}

Étape 8 - Consolider les routes dans l'API

src/routes/index.ts
{!auteur_mongoose_simulacre/src/routes/index.ts!}

Tests unitaires automatiques

Étape 1 - Créer le test de l'API

tests/auteur.test.ts
{!auteur_mongoose_simulacre/tests/auteur.test.ts!}

Étape 2 - Exécuter les tests de l'API

console
npm test