La création d'un backend de blog évolutif nécessite une architecture bien structurée, un système d'authentification et des API correctement documentées. L' API de blog NestJS MongoDB est un modèle de backend prêt pour la production, conçu pour aider les développeurs à créer rapidement des plateformes de blog modernes à l'aide de NestJS, MongoDB JWT authenticationet de la documentation Swagger .
Ce projet fournit une API RESTful complète comprenant des module pour les utilisateurs, les publications, les catégories, les étiquettes, les commentaires, l'authentification et le contrôle d'accès basé sur les rôles .
Dépôt : https://github.com/bfotool/nestjs-mongodb-blog-base
Qu'est-ce que l'API NestJS MongoDB Blog ?
L' API de blog NestJS MongoDB est un modèle de backend open-source construit avec NestJS 11 et MongoDB qui fournit une API REST de blog entièrement fonctionnelle.
Il est conçu pour servir de base à la construction :
Plateformes de blogs
Systèmes de gestion de contenu sans interface graphique
API de publication de contenu
Sites Web de documentation
Blogs de portfolio de développeur
Le projet suit l' architecture modulaire recommandée par NestJS, garantissant ainsi l'évolutivité et la maintenabilité.
Dépôt : https://github.com/bfotool/nestjs-mongodb-blog-base
Caractéristiques principales
Authentification et autorisation
L'API inclut un système d'authentification sécurisé utilisant des jetons JWT.
Les principales fonctionnalités d'authentification comprennent :
Jetons d'accès et d'actualisation JWT
Contrôle d'accès basé sur les rôles(RBAC)
Hachage de mot de passe avec bcrypt
Routes API protégées à l'aide de gardes
mécanisme de rafraîchissement des jetons
Trois rôles d'utilisateur par défaut sont pris en charge :
Administrateur
Auteur
Lecteur
Cela facilite la gestion des autorisations sur différents points de terminaison d'API.
Module de blog complets
Le projet comprend plusieurs module entièrement implémentés qui couvrent toutes les fonctionnalités essentielles d'un blog.
Module d'authentification
Gère l'authentification et les sessions utilisateur.
Les points de terminaison comprennent :
POST /auth/registerPOST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/profile
Module Utilisateurs
Gère les comptes et profils des utilisateurs.
Points d'extrémité :
GET /usersGET /users/:idPATCH /users/:idDELETE /users/:id
Les opérations d'écriture nécessitent des autorisations d'administrateur .
Module Articles
Le module « Articles » gère le contenu du blog.
Caractéristiques :
Pagination
Filtrage par catégorie, étiquette ou auteur
Tri
Recherche en texte intégral
Articles en vedette
Points d'extrémité :
GET /postsGET /posts/featuredGET /posts/:slugPOST /postsPATCH /posts/:idDELETE /posts/:id
Module Catégories
Organise les articles de blog en catégories.
Points d'extrémité :
GET /categoriesGET /categories/:slugPOST /categoriesPATCH /categories/:idDELETE /categories/:id
Module d'étiquettes
Permet un système de balisage flexible pour les articles de blog.
Points d'extrémité :
GET /tagsGET /tags/:slugPOST /tagsPATCH /tags/:idDELETE /tags/:id
Module de commentaires
Prend en charge les fils de commentaires et les réponses imbriquées.
Points d'extrémité :
GET /comments/post/:postIdGET /comments/:id/repliesPOST /commentsPATCH /comments/:idDELETE /comments/:id
Capacités de l'API
Pagination
Tous les points de terminaison de liste prennent en charge la pagination.
Exemple:
GET /posts?page=1&limit=6
Filtration
Les articles peuvent être filtrés par catégorie, étiquette ou auteur.
Exemple:
GET /posts?category=web-development
Recherche en texte intégral
La fonctionnalité de recherche est implémentée sur les articles.
Exemple:
GET /posts?search=nestjs+mongodb
Tri
Les réponses de l'API peuvent être triées selon différents champs.
Exemple:
GET /posts?sortBy=createdAt&sortOrder=desc
Génération automatique de slugs
Lors de la création d'articles, le système génère automatiquement un slug compatible avec les URL à partir du titre grâce à slugify .
Exemple:
Building REST APIs with NestJS
→ building-rest-apis-with-nestjs
Calcul du temps de lecture
L'API calcule automatiquement le temps de lecture estimé en fonction de la longueur du contenu des articles.
Format de réponse API cohérent
Toutes les réponses suivent une structure standard :
{
"success": true,
"data": {},
"timestamp": "2026-01-01T10:00:00Z"
}
Cela améliore l'intégration et le débogage côté client.
Pile technologique
Le backend est construit à l'aide d'une pile Node.js moderne.
| Couche | Technologie |
|---|---|
| Cadre | NestJS 11 |
| Langue | TypeScript 5.7 |
| Base de données | MongoDB 8 |
| ODM | Mangouste 8 |
| Authentification | Passport.js + JWT |
| Validation | validateur de classe |
| Documentation de l'API | Swagger OpenAPI |
| Sécurité des mots de passe | bcrypt |
| Générateur de limaces | slugifier |
| Essai | Plaisanter |
Structure du projet
Le projet suit une architecture modulaire.
src/
├── auth/
├── users/
├── posts/
├── categories/
├── tags/
├── comments/
├── common/
└── seed/
Les éléments importants comprennent :
Validation DTO
Schémas Mongoose
Filtres d'exception globaux
intercepteurs de réponse
Garde-fous JWT
décorateurs de rôle
Cette structure permet de maintenir le code source organisé et évolutif.
Comment installer et exécuter le projet
Prérequis
Avant l'installation, assurez-vous d'avoir :
Node.js 18.17+
MongoDB 6+
npm, yarn ou pnpm
Cloner le dépôt
git clone https://github.com/bfotool/nestjs-mongodb-blog-base
cd nestjs-mongodb-blog-base
Installer les dépendances
npm install
Configurer les variables d'environnement
Copiez le fichier d'environnement d'exemple :
cp .env.example .env
Mettez à jour les valeurs suivantes :
MONGODB_URI=
JWT_ACCESS_SECRET=
JWT_REFRESH_SECRET=
Initialiser la base de données
Remplissez la base de données avec des exemples de données :
npm run seed
Pour réinitialiser et réensemencer :
npm run seed:refresh
Démarrer le serveur de développement
npm run start:dev
URL de base de l'API :
http://localhost:3000/api/v1
Documentation Swagger :
http://localhost:3000/api/docs
Données initiales par défaut
Le script d'amorçage génère des exemples de données pour les tests.
| Entité | Compter |
|---|---|
| Utilisateurs | 5 |
| Catégories | 5 |
| Étiquettes | 28 |
| Messages | 10 |
| Commentaires | 6 |
Identifiants de connexion par défaut
Mot de passe pour tous les utilisateurs ayant reçu le mot de passe :
admin123
Comptes:
| Rôle | |
|---|---|
| Administrateur | [email protected] |
| Auteur | [email protected] |
| Auteur | [email protected] |
| Auteur | [email protected] |
| Lecteur | [email protected] |
Documentation de l'API Swagger
La documentation interactive de l'API est disponible à l'adresse suivante :
http://localhost:3000/api/docs
Swagger fournit :
Tests interactifs des points de terminaison
JWT authenticationsoutien
Documentation du schéma de requête et de réponse
Pourquoi utiliser ce dépôt
L' API NestJS MongoDB Blog est un point de départ puissant pour les développeurs qui créent un backend de blog moderne.
Les avantages comprennent :
Architecture modulaire propre de NestJS
Authentification et contrôle d'accès basé sur les rôles(RBAC) intégrés
Documentation de l'API Swagger prête à l'emploi
Intégration de MongoDB via Mongoose
système d'amorçage de base de données
Structure du projet prête pour la production



