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/registerPOST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/profile
Felhasználói modul
Kezeli a felhasználói fiókokat és profilokat.
Végpontok:
GET /usersGET /users/:idPATCH /users/:idDELETE /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 /postsGET /posts/featuredGET /posts/:slugPOST /postsPATCH /posts/:idDELETE /posts/:id
Kategóriák modul
Blogbejegyzéseket kategóriákba rendezi.
Végpontok:
GET /categoriesGET /categories/:slugPOST /categoriesPATCH /categories/:idDELETE /categories/:id
Címkék modul
Rugalmas címkézést tesz lehetővé a blogbejegyzésekhez.
Végpontok:
GET /tagsGET /tags/:slugPOST /tagsPATCH /tags/:idDELETE /tags/:id
Megjegyzések modul
Támogatja a hozzászólásláncokat és a beágyazott válaszokat.
Végpontok:
GET /comments/post/:postIdGET /comments/:id/repliesPOST /commentsPATCH /comments/:idDELETE /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 | |
|---|---|
| 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



