Template tal-API tal-Blog NestJS MongoDB – Backend REST Sħiħ għall-Blogs

Il-bini ta' backend ta' blog skalabbli jeħtieġ arkitettura strutturata sew, sistema ta' awtentikazzjoni, u APIs dokumentati kif suppost. L- API tal-Blog NestJS MongoDB hija mudell ta' backend lest għall-produzzjoni ddisinjat biex jgħin lill-iżviluppaturi jibnu malajr pjattaformi moderni ta' blog bl-użu tad-dokumentazzjoni ta ' NestJS, MongoDB, JWT authenticationu Swagger .

Dan il-proġett jipprovdi API RESTful kompluta inklużi moduli għall -utenti, postijiet, kategoriji, tikketti, kummenti, awtentikazzjoni, u kontroll tal-aċċess ibbażat fuq ir-rwol .

Repożitorju: https://github.com/bfotool/nestjs-mongodb-blog-base

X'inhi l-API tal-Blog NestJS MongoDB?

L -API tal-Blog NestJS MongoDB hija template backend open-source mibni b'NestJS 11 u MongoDB li jipprovdi API REST għall-blog kompletament funzjonali.

Huwa ddisinjat biex iservi bħala bażi għall-bini ta':

  • Pjattaformi tal-blog

  • Sistemi CMS mingħajr ras

  • APIs tal-pubblikazzjoni tal-kontenut

  • Websajts ta' dokumentazzjoni

  • Blogs tal-portafoll tal-iżviluppaturi

Il-proġett isegwi l- arkitettura modulari rakkomandata minn NestJS, u jiżgura l-iskalabbiltà u l-manutenzjoni.

Repożitorju: https://github.com/bfotool/nestjs-mongodb-blog-base

Karatteristiċi Ewlenin

Awtentikazzjoni u Awtorizzazzjoni

L-API tinkludi sistema ta' awtentikazzjoni sigura bl-użu ta' tokens JWT.

Il-karatteristiċi ewlenin tal-awtentikazzjoni jinkludu:

  • Tokens ta' Aċċess u Aġġornament tal-JWT

  • Kontroll tal-Aċċess Ibbażat fuq ir-Rwoli(RBAC)

  • Hashing tal-passwords bil-bcrypt

  • Rotot tal-API protetti bl-użu ta' Guards

  • Mekkaniżmu ta' aġġornament tat-token

Tliet rwoli tal-utent awtomatiċi huma appoġġjati:

  • Amministratur

  • Awtur

  • Qarrej

Dan jagħmilha faċli biex timmaniġġja l-permessi fuq endpoints differenti tal-API.

Moduli Sħaħ tal-Blog

Il-proġett jinkludi diversi moduli implimentati bis-sħiħ li jkopru l-funzjonalità ewlenija kollha tal-blog.

Modulu tal-Awtorizzazzjoni

Jimmaniġġja l-awtentikazzjoni u s-sessjonijiet tal-utent.

L-endpoints jinkludu:

  • POST /auth/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

Modulu tal-Utenti

Jimmaniġġja l-kontijiet u l-profili tal-utenti.

Punti tat-tmiem:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /users/:id

L-operazzjonijiet tal-kitba jeħtieġu permessi ta' Amministratur .

Modulu tal-Posts

Il-modulu tal-postijiet jimmaniġġja l-kontenut tal-blog.

Il-karatteristiċi jinkludu:

  • Paġinazzjoni

  • Iffiltrar skont il-kategorija, it-tikketta, jew l-awtur

  • Issortjar

  • Tiftix ta' test sħiħ

  • Postijiet Dehru

Punti tat-tmiem:

  • GET /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

Modulu tal-Kategoriji

Jorganizza l-postijiet tal-blog f'kategoriji.

Punti tat-tmiem:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

Modulu tat-Tikketti

Jippermetti tagging flessibbli għal postijiet tal-blog.

Punti tat-tmiem:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

Modulu tal-Kummenti

Jappoġġja ħjut ta' kummenti u tweġibiet imdaħħla f'xulxin.

Punti tat-tmiem:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /comments/:id

Kapaċitajiet tal-API

Paġinazzjoni

L-endpoints kollha tal-lista jappoġġjaw il-paġinazzjoni.

Eżempju:

GET /posts?page=1&limit=6

Iffiltrar

Il-postijiet jistgħu jiġu ffiltrati skont il-kategorija, it-tikketta, jew l-awtur.

Eżempju:

GET /posts?category=web-development

Tiftix ta' Test Sħiħ

Il-funzjonalità tat-tiftix hija implimentata fuq il-postijiet.

Eżempju:

GET /posts?search=nestjs+mongodb

Issortjar

Ir-risposti tal-API jistgħu jiġu kklassifikati skont oqsma differenti.

Eżempju:

GET /posts?sortBy=createdAt&sortOrder=desc

Ġenerazzjoni Awtomatika ta' Slug

Meta toħloq postijiet, is-sistema awtomatikament tiġġenera slug li jiffavorixxi l-URL mit-titlu billi tuża slugify .

Eżempju:

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

Kalkolu tal-Ħin tal-Qari

L-API tikkalkula awtomatikament il-ħin stmat tal-qari bbażat fuq it-tul tal-kontenut tal-postijiet.

Format ta' Rispons tal-API Konsistenti

Ir-risposti kollha jsegwu struttura standard:

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

Dan itejjeb l-integrazzjoni u d-debugging tal-frontend.

Munzell tat-Teknoloġija

Il-backend huwa mibni bl-użu ta' stack Node.js modern.

Saff Teknoloġija
Qafas NestJS 11
Lingwa TypeScript 5.7
Database MongoDB 8
ODM Mangusta 8
Awtentikazzjoni Passport.js + JWT
Validazzjoni validatur tal-klassi
Dokumentazzjoni tal-API Swagger OpenAPI
Sigurtà tal-Password bcrypt
Ġeneratur tal-Ballut slugify
Ittestjar Ċajta

Struttura tal-Proġett

Il-proġett isegwi arkitettura modulari.

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

Komponenti importanti jinkludu:

  • Validazzjoni tad-DTO

  • Skemi tal-mangusta

  • Filtri ta' eċċezzjoni globali

  • Interċettaturi tar-rispons

  • Gwardji tal-JWT

  • Dekoraturi tar-rwoli

Din l-istruttura żżomm il-bażi tal-kodiċi organizzata u skalabbli.

Kif Tinstalla u Tħaddem il-Proġett

Prerekwiżiti

Qabel ma tinstalla, kun żgur li għandek:

  • Node.js 18.17+

  • MongoDB 6+

  • npm, ħajta, jew pnpm

Ikklona r-Repożitorju

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

Installa Dipendenzi

npm install

Ikkonfigura l-Varjabbli tal-Ambjent

Ikkopja l-fajl tal-ambjent tal-eżempju:

cp .env.example .env

Aġġorna l-valuri li ġejjin:

MONGODB_URI= 
JWT_ACCESS_SECRET= 
JWT_REFRESH_SECRET= 

Żerriegħa tad-Database

Imla d-database b'dejta kampjun:

npm run seed

Biex tirrisettja u terġa' żżerża:

npm run seed:refresh

Ibda s-Server tal-Iżvilupp

npm run start:dev

URL bażi tal-API:

http://localhost:3000/api/v1

Dokumentazzjoni ta' Swagger:

http://localhost:3000/api/docs

Dejta Żerriegħa Predefinita

L-iskritt tas-seed jiġġenera dejta kampjun għall-ittestjar.

Entità Għadd
Utenti 5
Kategoriji 5
Tikketti 28 sena
Postijiet 10
Kummenti 6

Kredenzjali tal-Login Predefiniti

Password għall-utenti kollha li ġew seeded:

admin123

Kontijiet:

Rwol Email
Amministratur [email protected]
Awtur [email protected]
Awtur [email protected]
Awtur [email protected]
Qarrej [email protected]

Dokumentazzjoni tal-API ta' Swagger

Dokumentazzjoni interattiva tal-API hija disponibbli fuq:

http://localhost:3000/api/docs

Swagger jipprovdi:

  • Ittestjar interattiv tal-endpoint

  • JWT authenticationappoġġ

  • Dokumentazzjoni tal-iskema tat-talbiet u r-rispons

Għaliex Għandek Tuża Dan ir-Repożitorju

L- API tal-Blog NestJS MongoDB hija punt tat-tluq qawwi għall-iżviluppaturi li jibnu backend tal-blog modern.

Il-vantaġġi jinkludu:

  • Arkitettura modulari NestJS nadifa

  • Awtentikazzjoni integrata u RBAC

  • Dokumentazzjoni tal-API Swagger lesta għall-użu

  • Integrazzjoni ta' MongoDB bl-użu ta' Mongoose

  • Sistema ta' żrigħ tad-database

  • Struttura ta' proġett lesta għall-produzzjoni

Repożitorju: https://github.com/bfotool/nestjs-mongodb-blog-base