Șablon API NestJS MongoDB Blog – Backend REST complet pentru bloguri

Construirea unui backend scalabil pentru blog necesită o arhitectură bine structurată, un sistem de autentificare și API-uri documentate corespunzător. API-ul NestJS MongoDB Blog este un șablon de backend pregătit pentru producție, conceput pentru a ajuta dezvoltatorii să construiască rapid platforme de blog moderne folosind documentația NestJS, MongoDB JWT authenticationși Swagger .

Acest proiect oferă o API RESTful completă, inclusiv module pentru utilizatori, postări, categorii, etichete, comentarii, autentificare și control al accesului bazat pe roluri .

Repozitoriu: https://github.com/bfotool/nestjs-mongodb-blog-base

Ce este API-ul NestJS MongoDB pentru blog?

API -ul NestJS MongoDB Blog este un șablon backend open-source construit cu NestJS 11 și MongoDB, care oferă un API REST complet funcțional pentru bloguri.

Este conceput să servească drept fundație pentru construirea:

  • Platforme de bloguri

  • Sisteme CMS fără fir

  • API-uri pentru publicarea de conținut

  • Site-uri web de documentație

  • Bloguri din portofoliul dezvoltatorilor

Proiectul urmează arhitectura modulară recomandată de NestJS, asigurând scalabilitate și mentenabilitate.

Repozitoriu: https://github.com/bfotool/nestjs-mongodb-blog-base

Caracteristici cheie

Autentificare și autorizare

API-ul include un sistem de autentificare securizat care folosește token-uri JWT.

Principalele caracteristici de autentificare includ:

  • Token-uri de acces și actualizare JWT

  • Controlul accesului bazat pe roluri(RBAC)

  • Hashing-ul parolei cu bcrypt

  • Rute API protejate folosind Guards

  • Mecanismul de reîmprospătare a jetoanelor

Sunt acceptate trei roluri de utilizator implicite:

  • Administrator

  • Autor

  • Cititor

Acest lucru facilitează gestionarea permisiunilor pe diferite endpoint-uri API.

Module complete de blog

Proiectul include mai multe module complet implementate care acoperă toate funcționalitățile de bază ale blogului.

Modul de autentificare

Gestionează autentificarea și sesiunile utilizatorilor.

Punctele finale includ:

  • POST /auth/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

Modulul Utilizatori

Gestionează conturile și profilurile utilizatorilor.

Puncte finale:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /users/:id

Operațiunile de scriere necesită permisiuni de administrator .

Modulul Postări

Modulul de postări gestionează conținutul blogului.

Caracteristicile includ:

  • Paginare

  • Filtrarea după categorie, etichetă sau autor

  • Triere

  • Căutare text complet

  • Postări recomandate

Puncte finale:

  • GET /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

Modulul Categorii

Organizează articolele de blog în categorii.

Puncte finale:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

Modulul Etichete

Permite etichetarea flexibilă a postărilor de blog.

Puncte finale:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

Modulul de comentarii

Acceptă fire de comentarii și răspunsuri imbricate.

Puncte finale:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /comments/:id

Capacități API

Paginare

Toate punctele finale ale listei acceptă paginarea.

Exemplu:

GET /posts?page=1&limit=6

Filtrare

Postările pot fi filtrate după categorie, etichetă sau autor.

Exemplu:

GET /posts?category=web-development

Căutare text complet

Funcționalitatea de căutare este implementată în postări.

Exemplu:

GET /posts?search=nestjs+mongodb

Triere

Răspunsurile API pot fi sortate după diferite câmpuri.

Exemplu:

GET /posts?sortBy=createdAt&sortOrder=desc

Generare automată de slug-uri

La crearea de postări, sistemul generează automat un slug prietenos cu URL-ul din titlu folosind slugify .

Exemplu:

Building REST APIs with NestJS 
→ building-rest-apis-with-nestjs 

Calculul timpului de citire

API-ul calculează automat timpul estimat de citire pe baza lungimii conținutului postărilor.

Format de răspuns API consistent

Toate răspunsurile respectă o structură standard:

{ 
  "success": true, 
  "data": {}, 
  "timestamp": "2026-01-01T10:00:00Z" 
} 

Acest lucru îmbunătățește integrarea și depanarea frontend-ului.

Stiva tehnologică

Backend-ul este construit folosind o stivă Node.js modernă.

Strat Tehnologie
Cadru NestJS 11
Limbă TypeScript 5.7
Bază de date MongoDB 8
ODM Mangusta 8
Autentificare Passport.js + JWT
Validare validator de clasă
Documentație API Swagger OpenAPI
Securitatea parolei bcrypt
Generator de melci slugify
Testare Glumă

Structura proiectului

Proiectul urmează o arhitectură modulară.

src/ 
├── auth/ 
├── users/ 
├── posts/ 
├── categories/ 
├── tags/ 
├── comments/ 
├── common/ 
└── seed/ 

Componentele importante includ:

  • Validare DTO

  • Scheme de mangustă

  • Filtre globale de excepții

  • Interceptoare de răspuns

  • Garda JWT

  • Decoratori de roluri

Această structură menține baza de cod organizată și scalabilă.

Cum se instalează și se execută proiectul

Cerințe preliminare

Înainte de instalare, asigurați-vă că aveți:

  • Node.js 18.17+

  • MongoDB 6+

  • npm, fire sau pnpm

Clonează Repozitoriul

git clone https://github.com/bfotool/nestjs-mongodb-blog-base 
cd nestjs-mongodb-blog-base 

Instalați dependențe

npm install

Configurați variabilele de mediu

Copiați fișierul de mediu exemplu:

cp .env.example .env

Actualizați următoarele valori:

MONGODB_URI= 
JWT_ACCESS_SECRET= 
JWT_REFRESH_SECRET= 

Seminează baza de date

Populați baza de date cu date eșantion:

npm run seed

Pentru a reseta și a reînsămânța:

npm run seed:refresh

Porniți serverul de dezvoltare

npm run start:dev

URL-ul de bază al API-ului:

http://localhost:3000/api/v1

Documentația Swagger:

http://localhost:3000/api/docs

Date implicite inițiale

Scriptul seed generează date eșantion pentru testare.

Entitate Conta
Utilizatori 5
Categorii 5
Etichete 28 de ani
Postări 10
Comentarii 6

Acreditări de conectare implicite

Parolă pentru toți utilizatorii setați:

admin123

Conturi:

Rol E-mail
Administrator [email protected]
Autor [email protected]
Autor [email protected]
Autor [email protected]
Cititor [email protected]

Documentația API-ului Swagger

Documentația API interactivă este disponibilă la:

http://localhost:3000/api/docs

Swagger oferă:

  • Testarea interactivă a punctelor finale

  • JWT authenticationsprijin

  • Documentația schemei de solicitare și răspuns

De ce să folosiți acest depozit

API -ul NestJS MongoDB Blog este un punct de plecare puternic pentru dezvoltatorii care construiesc un backend modern pentru bloguri.

Avantajele includ:

  • Arhitectură modulară NestJS curată

  • Autentificare încorporată și RBAC

  • Documentație API Swagger gata de utilizare

  • Integrare MongoDB folosind Mongoose

  • Sistem de însămânțare a bazelor de date

  • Structura proiectului pregătită pentru producție

Repozitoriu: https://github.com/bfotool/nestjs-mongodb-blog-base