Plantilla de API de blog de MongoDB de NestJS: backend REST con todas las funciones para blogs

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/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

Módulo de usuarios

Administra cuentas y perfiles de usuario.

Puntos finales:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /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 /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

Módulo de categorías

Organiza las publicaciones del blog en categorías.

Puntos finales:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

Módulo de etiquetas

Permite el etiquetado flexible para publicaciones de blog.

Puntos finales:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

Módulo de comentarios

Admite hilos de comentarios y respuestas anidadas.

Puntos finales:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /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