Shablloni i API-t të Blogut NestJS MongoDB – Backend i Plotë REST për Blogje

Ndërtimi i një backend-i të shkallëzueshëm për blogun kërkon një arkitekturë të strukturuar mirë, sistem autentifikimi dhe API të dokumentuara siç duhet. API-ja e blogut NestJS MongoDB është një shabllon backend i gatshëm për prodhim, i projektuar për të ndihmuar zhvilluesit të ndërtojnë shpejt platforma moderne blogu duke përdorur dokumentacionin e NestJS, MongoDB JWT authenticationdhe Swagger .

Ky projekt ofron një API të plotë RESTful duke përfshirë module për përdoruesit, postimet, kategoritë, etiketat, komentet, autentifikimin dhe kontrollin e aksesit bazuar në role .

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

Çfarë është NestJS MongoDB Blog API?

API -ja e Blogut NestJS MongoDB është një shabllon backend me burim të hapur i ndërtuar me NestJS 11 dhe MongoDB që ofron një API REST për blogun plotësisht funksional.

Është projektuar të shërbejë si themel për ndërtimin e:

  • Platformat e blogut

  • Sisteme CMS pa kokë

  • API-të e publikimit të përmbajtjes

  • Faqet e internetit të dokumentacionit

  • Blogjet e portofolit të zhvilluesve

Projekti ndjek arkitekturën modulare të rekomanduar nga NestJS, duke siguruar shkallëzueshmëri dhe mirëmbajtje të lehtë.

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

Karakteristikat kryesore

Autentifikimi dhe Autorizimi

API përfshin një sistem të sigurt autentifikimi duke përdorur tokena JWT.

Karakteristikat kryesore të autentifikimit përfshijnë:

  • Tokenët e Qasjes dhe Rifreskimit të JWT

  • Kontrolli i Qasjes i Bazuar në Role(RBAC)

  • Hashimi i fjalëkalimeve me bcrypt

  • Rrugët e mbrojtura të API-t duke përdorur Rojet

  • Mekanizmi i rifreskimit të tokenëve

Mbështeten tre role përdoruesish të parazgjedhur:

  • Administrator

  • Autori

  • Lexues

Kjo e bën të lehtë menaxhimin e lejeve nëpër pika të ndryshme fundore të API-t.

Modulet e plota të blogut

Projekti përfshin disa module të implementuara plotësisht që mbulojnë të gjithë funksionalitetin kryesor të blogut.

Moduli i Autorizimit

Trajton vërtetimin dhe seancat e përdoruesit.

Pikat fundore përfshijnë:

  • POST /auth/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

Moduli i Përdoruesve

Menaxhon llogaritë dhe profilet e përdoruesve.

Pikat fundore:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /users/:id

Operacionet e shkrimit kërkojnë leje administratori .

Moduli i Postimeve

Moduli i postimeve menaxhon përmbajtjen e blogut.

Karakteristikat përfshijnë:

  • Faqet

  • Filtrimi sipas kategorisë, etiketës ose autorit

  • Renditja

  • Kërkim me tekst të plotë

  • Postimet e veçuara

Pikat fundore:

  • GET /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

Moduli i Kategorive

Organizon postimet në blog në kategori.

Pikat fundore:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

Moduli i Etiketave

Lejon etiketim fleksibël për postimet në blog.

Pikat fundore:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

Moduli i Komenteve

Mbështet fijet e komenteve dhe përgjigjet e ndërthurura.

Pikat fundore:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /comments/:id

Aftësitë e API-t

Faqet

Të gjitha pikat fundore të listës mbështesin faqosjen.

Shembull:

GET /posts?page=1&limit=6

Filtrim

Postimet mund të filtrohen sipas kategorisë, etiketës ose autorit.

Shembull:

GET /posts?category=web-development

Kërkim me Tekst të Plotë

Funksionaliteti i kërkimit është zbatuar në postime.

Shembull:

GET /posts?search=nestjs+mongodb

Renditja

Përgjigjet e API-t mund të renditen sipas fushave të ndryshme.

Shembull:

GET /posts?sortBy=createdAt&sortOrder=desc

Gjenerimi Automatik i Slug

Kur krijohen postime, sistemi gjeneron automatikisht një slug miqësor me URL-në nga titulli duke përdorur slugify .

Shembull:

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

Llogaritja e Kohës së Leximit

API llogarit automatikisht kohën e vlerësuar të leximit bazuar në gjatësinë e përmbajtjes së postimeve.

Formati i Përgjigjes së API-t të Qëndrueshëm

Të gjitha përgjigjet ndjekin një strukturë standarde:

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

Kjo përmirëson integrimin dhe debugging-un e frontend-it.

Stack i Teknologjisë

Backend-i është ndërtuar duke përdorur një grumbull modern Node.js.

Shtresa Teknologji
Kornizë NestJS 11
Gjuha TypeScript 5.7
Baza e të dhënave MongoDB 8
ODM Mangusta 8
Autentifikimi Passport.js + JWT
Validimi validues i klasës
Dokumentacioni i API-t Swagger OpenAPI
Siguria e fjalëkalimit kriptozë e fshehtë
Gjenerator Slug shkatërroj
Testimi Shaka

Struktura e Projektit

Projekti ndjek një arkitekturë modulare.

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

Komponentë të rëndësishëm përfshijnë:

  • Validimi i DTO-së

  • Skemat e mangustës

  • Filtra globalë përjashtimesh

  • Ndërprerësit e reagimit

  • Rojet e JWT-së

  • Dekorues rolesh

Kjo strukturë e mban bazën e kodit të organizuar dhe të shkallëzueshme.

Si ta instaloni dhe ekzekutoni projektin

Parakushte

Para instalimit, sigurohuni që keni:

  • Node.js 18.17+

  • MongoDB 6+

  • npm, fije ose pnpm

Klononi Depozitën

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

Instalimi i Varësive

npm install

Konfiguro Variablat e Mjedisit

Kopjoni skedarin e mjedisit shembull:

cp .env.example .env

Përditësoni vlerat e mëposhtme:

MONGODB_URI= 
JWT_ACCESS_SECRET= 
JWT_REFRESH_SECRET= 

Mbjellja e bazës së të dhënave

Plotësoni bazën e të dhënave me të dhëna shembullore:

npm run seed

Për të rivendosur dhe riinstaluar:

npm run seed:refresh

Nisni Serverin e Zhvillimit

npm run start:dev

URL-ja bazë e API-t:

http://localhost:3000/api/v1

Dokumentacioni i Swagger:

http://localhost:3000/api/docs

Të dhënat e parazgjedhura të mbjella

Skripti i farës gjeneron të dhëna mostër për testim.

Entitet Numërimi
Përdoruesit 5
Kategoritë 5
Etiketat 28
Postimet 10
Komente 6

Kredencialet e parazgjedhura të hyrjes

Fjalëkalimi për të gjithë përdoruesit e regjistruar:

admin123

Llogaritë:

Rol Email
Administrator [email protected]
Autori [email protected]
Autori [email protected]
Autori [email protected]
Lexues [email protected]

Dokumentacioni i API-t të Swagger

Dokumentacioni interaktiv i API-t është i disponueshëm në:

http://localhost:3000/api/docs

Swagger ofron:

  • Testimi interaktiv i pikës fundore

  • JWT authenticationmbështetje

  • Dokumentacioni i skemës së kërkesës dhe përgjigjes

Pse të përdorni këtë depo

API -ja e blogut NestJS MongoDB është një pikënisje e fuqishme për zhvilluesit që ndërtojnë një backend modern të blogut.

Përparësitë përfshijnë:

  • Arkitektura modulare e pastër e NestJS

  • Autentifikim i integruar dhe RBAC

  • Dokumentacioni i gatshëm për përdorim i Swagger API

  • Integrimi i MongoDB duke përdorur Mongoose

  • Sistemi i mbjelljes së bazës së të dhënave

  • Struktura e projektit gati për prodhim

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