NestJS MongoDB Blog API sablon – Teljes funkcionalitású REST háttérrendszer blogokhoz

Egy skálázható blog backend felépítéséhez jól strukturált architektúra, hitelesítési rendszer és megfelelően dokumentált API-k szükségesek. A NestJS MongoDB Blog API egy éles használatra kész backend sablon, amely segít a fejlesztőknek gyorsan modern blogplatformokat létrehozni a NestJS, a MongoDB JWT authenticationés a Swagger dokumentációjának használatával .

Ez a projekt egy teljes RESTful API-t biztosít, beleértve a felhasználókhoz, bejegyzésekhez, kategóriákhoz, címkékhez, megjegyzésekhez, hitelesítéshez és szerepköralapú hozzáférés-vezérléshez tartozó modulokat .

Adattár: https://github.com/bfotool/nestjs-mongodb-blog-base

Mi a NestJS MongoDB Blog API?

A NestJS MongoDB Blog API egy nyílt forráskódú backend sablon, amely NestJS 11 és MongoDB segítségével készült, és egy teljes funkcionalitású blog REST API-t biztosít.

Úgy tervezték, hogy alapként szolgáljon a következők építéséhez:

  • Blogplatformok

  • Fej nélküli CMS rendszerek

  • Tartalom közzétételi API-k

  • Dokumentációs weboldalak

  • Fejlesztői portfólió blogok

A projekt a NestJS által ajánlott moduláris architektúrát követi, biztosítva a skálázhatóságot és a karbantarthatóságot.

Adattár: https://github.com/bfotool/nestjs-mongodb-blog-base

Főbb jellemzők

Hitelesítés és engedélyezés

Az API tartalmaz egy biztonságos hitelesítési rendszert, amely JWT tokeneket használ.

A főbb hitelesítési funkciók a következők:

  • JWT hozzáférési és frissítési tokenek

  • Szerepköralapú hozzáférés-vezérlés(RBAC)

  • Jelszó hashelése bcrypt segítségével

  • Védett API útvonalak Guards használatával

  • Tokenfrissítési mechanizmus

Három alapértelmezett felhasználói szerepkör támogatott:

  • Adminisztrátor

  • Szerző

  • Olvasó

Ez megkönnyíti az engedélyek kezelését a különböző API-végpontok között.

Teljes blog modulok

A projekt számos teljes mértékben megvalósított modult tartalmaz, amelyek lefedik a blog összes alapvető funkcióját.

Auth modul

Kezeli a hitelesítést és a felhasználói munkameneteket.

A végpontok a következők:

  • POST /auth/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

Felhasználói modul

Kezeli a felhasználói fiókokat és profilokat.

Végpontok:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /users/:id

Az írási műveletekhez rendszergazdai jogosultságok szükségesek .

Bejegyzések modul

A bejegyzések modul a blog tartalmát kezeli.

Jellemzők többek között:

  • Lapszámozás

  • Szűrés kategória, címke vagy szerző szerint

  • Osztályozás

  • Teljes szöveges keresés

  • Kiemelt bejegyzések

Végpontok:

  • GET /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

Kategóriák modul

Blogbejegyzéseket kategóriákba rendezi.

Végpontok:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

Címkék modul

Rugalmas címkézést tesz lehetővé a blogbejegyzésekhez.

Végpontok:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

Megjegyzések modul

Támogatja a hozzászólásláncokat és a beágyazott válaszokat.

Végpontok:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /comments/:id

API-képességek

Lapszámozás

Minden listavégpont támogatja a lapozást.

Példa:

GET /posts?page=1&limit=6

Szűrő

A bejegyzések szűrhetők kategória, címke vagy szerző szerint.

Példa:

GET /posts?category=web-development

Teljes szöveges keresés

A keresési funkció a bejegyzésekben van megvalósítva.

Példa:

GET /posts?search=nestjs+mongodb

Osztályozás

Az API-válaszok különböző mezők szerint rendezhetők.

Példa:

GET /posts?sortBy=createdAt&sortOrder=desc

Automatikus csigagenerálás

Bejegyzések létrehozásakor a rendszer automatikusan generál egy URL-barát slug-ot a címből a slugify használatával .

Példa:

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

Olvasási idő kiszámítása

Az API automatikusan kiszámítja a becsült olvasási időt a bejegyzések tartalmi hossza alapján.

Konzisztens API válaszformátum

Minden válasz egy szabványos struktúrát követ:

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

Ez javítja a frontend integrációt és a hibakeresést.

Technológiai verem

A backend egy modern Node.js stack használatával épül fel.

Réteg Technológia
Keretrendszer NestJS 11
Nyelv TypeScript 5.7
Adatbázis MongoDB 8
ODM Mongúz 8
Hitelesítés Passport.js + JWT
Érvényesítés osztály-validátor
API dokumentáció Swagger OpenAPI
Jelszóbiztonság bcrypt
Csigagenerátor slugify
Tesztelés Tréfa

Projekt felépítése

A projekt moduláris architektúrát követ.

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

Fontos összetevők a következők:

  • DTO-érvényesítés

  • Mongúz sémák

  • Globális kivételszűrők

  • Válaszelfogók

  • JWT védőfelszerelések

  • Szerepkör dekoratőrök

Ez a struktúra rendezetté és skálázhatóvá teszi a kódbázist.

A projekt telepítése és futtatása

Előfeltételek

Telepítés előtt győződjön meg arról, hogy rendelkezik a következőkkel:

  • Node.js 18.17+

  • MongoDB 6+

  • npm, fonal vagy pnpm

A tárház klónozása

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

Függőségek telepítése

npm install

Környezeti változók konfigurálása

Másolja a példa környezeti fájlt:

cp .env.example .env

Frissítse a következő értékeket:

MONGODB_URI= 
JWT_ACCESS_SECRET= 
JWT_REFRESH_SECRET= 

Az adatbázis beküldése

Töltse fel az adatbázist mintaadatokkal:

npm run seed

Visszaállításhoz és újraindításhoz:

npm run seed:refresh

Indítsa el a fejlesztői szervert

npm run start:dev

API alap URL:

http://localhost:3000/api/v1

Swagger dokumentáció:

http://localhost:3000/api/docs

Alapértelmezett vetőmagadatok

A seed szkript minta adatokat generál teszteléshez.

Entitás Gróf
Felhasználók 5
Kategóriák 5
Címkék 28
Bejegyzések 10
Hozzászólások 6

Alapértelmezett bejelentkezési adatok

Jelszó minden kiemelt felhasználó számára:

admin123

Fiókok:

Szerep Email
Adminisztrátor [email protected]
Szerző [email protected]
Szerző [email protected]
Szerző [email protected]
Olvasó [email protected]

Swagger API dokumentáció

Az interaktív API dokumentációja a következő címen érhető el:

http://localhost:3000/api/docs

A Swagger a következőket kínálja:

  • Interaktív végponttesztelés

  • JWT authenticationtámogatás

  • Kérés-válasz séma dokumentáció

Miért érdemes ezt a tárházat használni?

A NestJS MongoDB Blog API egy hatékony kiindulópont a fejlesztők számára, akik modern blog backendet építenek.

Előnyök közé tartozik:

  • Tiszta NestJS moduláris architektúra

  • Beépített hitelesítés és RBAC

  • Használatra kész Swagger API dokumentáció

  • MongoDB integráció Mongoose használatával

  • Adatbázis- vetési rendszer

  • Gyártásra kész projektstruktúra

Adattár: https://github.com/bfotool/nestjs-mongodb-blog-base