Crear un backend de blog escalable requiere una arquitectura bien estructurada, un sistema de autenticación y APIs bien documentadas. La API de blog de MongoDB de NestJS es una plantilla de backend lista para producción, diseñada para ayudar a los desarrolladores a crear rápidamente plataformas de blog modernas utilizando la documentación de NestJS, MongoDB JWT authenticationy Swagger .
Este proyecto proporciona una API RESTful completa que incluye módulos para usuarios, publicaciones, categorías, etiquetas, comentarios, autenticación y control de acceso basado en roles .
Repositorio: https://github.com/bfotool/nestjs-mongodb-blog-base
¿Qué es la API del blog MongoDB de NestJS?
La API de blog MongoDB de NestJS es una plantilla de backend de código abierto creada con NestJS 11 y MongoDB que proporciona una API REST de blog totalmente funcional.
Está diseñado para servir como base para la construcción de:
Plataformas de blogs
Sistemas CMS sin cabeza
API de publicación de contenido
Sitios web de documentación
Blogs de portafolios de desarrolladores
El proyecto sigue la arquitectura modular recomendada por NestJS, garantizando escalabilidad y mantenibilidad.
Repositorio: https://github.com/bfotool/nestjs-mongodb-blog-base
Características principales
Autenticación y autorización
La API incluye un sistema de autenticación seguro utilizando tokens JWT.
Las principales características de autenticación incluyen:
Tokens de acceso y actualización JWT
Control de acceso basado en roles(RBAC)
Hashing de contraseñas con bcrypt
Rutas API protegidas mediante guardias
Mecanismo de actualización de tokens
Se admiten tres roles de usuario predeterminados:
Administración
Autor
Lector
Esto facilita la gestión de permisos en diferentes puntos finales de API.
Módulos de blog completos
El proyecto incluye varios módulos completamente implementados que cubren toda la funcionalidad principal del blog.
Módulo de autenticación
Maneja la autenticación y las sesiones de usuario.
Los puntos finales incluyen:
POST /auth/registerPOST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/profile
Módulo de usuarios
Administra cuentas y perfiles de usuario.
Puntos finales:
GET /usersGET /users/:idPATCH /users/:idDELETE /users/:id
Las operaciones de escritura requieren permisos de administrador .
Módulo de publicaciones
El módulo de publicaciones administra el contenido del blog.
Las características incluyen:
Paginación
Filtrar por categoría, etiqueta o autor
Clasificación
Búsqueda de texto completo
Publicaciones destacadas
Puntos finales:
GET /postsGET /posts/featuredGET /posts/:slugPOST /postsPATCH /posts/:idDELETE /posts/:id
Módulo de categorías
Organiza las publicaciones del blog en categorías.
Puntos finales:
GET /categoriesGET /categories/:slugPOST /categoriesPATCH /categories/:idDELETE /categories/:id
Módulo de etiquetas
Permite el etiquetado flexible para publicaciones de blog.
Puntos finales:
GET /tagsGET /tags/:slugPOST /tagsPATCH /tags/:idDELETE /tags/:id
Módulo de comentarios
Admite hilos de comentarios y respuestas anidadas.
Puntos finales:
GET /comments/post/:postIdGET /comments/:id/repliesPOST /commentsPATCH /comments/:idDELETE /comments/:id
Capacidades de la API
Paginación
Todos los puntos finales de la lista admiten la paginación.
Ejemplo:
GET /posts?page=1&limit=6
Filtración
Las publicaciones se pueden filtrar por categoría, etiqueta o autor.
Ejemplo:
GET /posts?category=web-development
Búsqueda de texto completo
La funcionalidad de búsqueda está implementada en las publicaciones.
Ejemplo:
GET /posts?search=nestjs+mongodb
Clasificación
Las respuestas de la API se pueden ordenar por diferentes campos.
Ejemplo:
GET /posts?sortBy=createdAt&sortOrder=desc
Generación automática de slugs
Al crear publicaciones, el sistema genera automáticamente un slug compatible con URL a partir del título usando slugify .
Ejemplo:
Building REST APIs with NestJS
→ building-rest-apis-with-nestjs
Cálculo del tiempo de lectura
La API calcula automáticamente el tiempo de lectura estimado en función de la longitud del contenido de las publicaciones.
Formato de respuesta de API consistente
Todas las respuestas siguen una estructura estándar:
{
"success": true,
"data": {},
"timestamp": "2026-01-01T10:00:00Z"
}
Esto mejora la integración y la depuración del frontend.
Pila de tecnología
El backend está construido utilizando una pila Node.js moderna.
| Capa | Tecnología |
|---|---|
| Estructura | NestJS 11 |
| Idioma | TypeScript 5.7 |
| Base de datos | MongoDB 8 |
| Fabricante de equipos originales(ODM) | Mangosta 8 |
| Autenticación | Pasaporte.js + JWT |
| Validación | validador de clase |
| Documentación de la API | Swagger OpenAPI |
| Seguridad de la contraseña | bcrypt |
| Generador de babosas | slugificar |
| Pruebas | Broma |
Estructura del proyecto
El proyecto sigue una arquitectura modular.
src/
├── auth/
├── users/
├── posts/
├── categories/
├── tags/
├── comments/
├── common/
└── seed/
Los componentes importantes incluyen:
Validación de DTO
Esquemas de mangosta
Filtros de excepción globales
Interceptores de respuesta
Guardias del JWT
Decoradores de roles
Esta estructura mantiene la base de código organizada y escalable.
Cómo instalar y ejecutar el proyecto
Prerrequisitos
Antes de instalar, asegúrese de tener:
Node.js 18.17+
MongoDB 6+
npm, hilo o pnpm
Clonar el repositorio
git clone https://github.com/bfotool/nestjs-mongodb-blog-base
cd nestjs-mongodb-blog-base
Instalar dependencias
npm install
Configurar variables de entorno
Copie el archivo de entorno de ejemplo:
cp .env.example .env
Actualice los siguientes valores:
MONGODB_URI=
JWT_ACCESS_SECRET=
JWT_REFRESH_SECRET=
Sembrar la base de datos
Llene la base de datos con datos de muestra:
npm run seed
Para restablecer y volver a sembrar:
npm run seed:refresh
Iniciar el servidor de desarrollo
npm run start:dev
URL base de la API:
http://localhost:3000/api/v1
Documentación de Swagger:
http://localhost:3000/api/docs
Datos de semilla predeterminados
El script de semilla genera datos de muestra para realizar pruebas.
| Entidad | Contar |
|---|---|
| Usuarios | 5 |
| Categorías | 5 |
| Etiquetas | 28 |
| Publicaciones | 10 |
| Comentarios | 6 |
Credenciales de inicio de sesión predeterminadas
Contraseña para todos los usuarios sembrados:
admin123
Cuentas:
| Role | Correo electrónico |
|---|---|
| Administración | [email protected] |
| Autor | [email protected] |
| Autor | [email protected] |
| Autor | [email protected] |
| Lector | [email protected] |
Documentación de la API de Swagger
La documentación interactiva de la API está disponible en:
http://localhost:3000/api/docs
Swagger ofrece:
Pruebas interactivas de puntos finales
JWT authenticationapoyo
Documentación del esquema de solicitud y respuesta
¿Por qué utilizar este repositorio?
La API de blog MongoDB de NestJS es un poderoso punto de partida para los desarrolladores que crean un backend de blog moderno.
Las ventajas incluyen:
Arquitectura modular limpia de NestJS
Autenticación integrada y RBAC
Documentación de la API de Swagger lista para usar
Integración de MongoDB con Mongoose
Sistema de siembra de bases de datos
Estructura del proyecto lista para producción
Repositorio: https://github.com/bfotool/nestjs-mongodb-blog-base



