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/registerPOST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/profile
Moduli i Përdoruesve
Menaxhon llogaritë dhe profilet e përdoruesve.
Pikat fundore:
GET /usersGET /users/:idPATCH /users/:idDELETE /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 /postsGET /posts/featuredGET /posts/:slugPOST /postsPATCH /posts/:idDELETE /posts/:id
Moduli i Kategorive
Organizon postimet në blog në kategori.
Pikat fundore:
GET /categoriesGET /categories/:slugPOST /categoriesPATCH /categories/:idDELETE /categories/:id
Moduli i Etiketave
Lejon etiketim fleksibël për postimet në blog.
Pikat fundore:
GET /tagsGET /tags/:slugPOST /tagsPATCH /tags/:idDELETE /tags/:id
Moduli i Komenteve
Mbështet fijet e komenteve dhe përgjigjet e ndërthurura.
Pikat fundore:
GET /comments/post/:postIdGET /comments/:id/repliesPOST /commentsPATCH /comments/:idDELETE /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 | |
|---|---|
| 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



