Vytvoření škálovatelného blogového backendu vyžaduje dobře strukturovanou architekturu, autentizační systém a řádně zdokumentovaná API. NestJS MongoDB Blog API je šablona backendu připravená pro produkční prostředí, která má vývojářům pomoci rychle vytvářet moderní blogové platformy pomocí dokumentace k NestJS, MongoDB JWT authenticationa Swaggeru .
Tento projekt poskytuje kompletní RESTful API včetně modulů pro uživatele, příspěvky, kategorie, tagy, komentáře, ověřování a řízení přístupu na základě rolí .
Repozitář: https://github.com/bfotool/nestjs-mongodb-blog-base
Co je NestJS MongoDB Blog API
NestJS MongoDB Blog API je open-source backendová šablona vytvořená pomocí NestJS 11 a MongoDB, která poskytuje plně funkční blogové REST API.
Je navržen tak, aby sloužil jako základ pro stavbu:
Blogovací platformy
Bezhlavé CMS systémy
API pro publikování obsahu
Dokumentační webové stránky
Blogy portfolia vývojářů
Projekt se řídí modulární architekturou doporučenou NestJS, což zajišťuje škálovatelnost a udržovatelnost.
Repozitář: https://github.com/bfotool/nestjs-mongodb-blog-base
Klíčové vlastnosti
Autentizace a autorizace
API obsahuje bezpečný systém ověřování pomocí tokenů JWT.
Mezi hlavní funkce ověřování patří:
Tokeny pro přístup a obnovení JWT
Řízení přístupu na základě rolí(RBAC)
Hašování hesel pomocí bcryptu
Chráněné trasy API pomocí Guards
Mechanismus obnovy tokenů
Jsou podporovány tři výchozí uživatelské role:
Administrátor
Autor
Čtenář
Díky tomu je snadné spravovat oprávnění napříč různými koncovými body API.
Kompletní moduly blogu
Projekt zahrnuje několik plně implementovaných modulů, které pokrývají všechny základní funkce blogu.
Autorizační modul
Zpracovává ověřování a uživatelské relace.
Mezi koncové body patří:
POST /auth/registerPOST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/profile
Modul uživatelů
Spravuje uživatelské účty a profily.
Koncové body:
GET /usersGET /users/:idPATCH /users/:idDELETE /users/:id
Operace zápisu vyžadují oprávnění správce .
Modul příspěvků
Modul příspěvků spravuje obsah blogu.
Mezi funkce patří:
Stránkování
Filtrování podle kategorie, štítku nebo autora
Řazení
Fulltextové vyhledávání
Doporučené příspěvky
Koncové body:
GET /postsGET /posts/featuredGET /posts/:slugPOST /postsPATCH /posts/:idDELETE /posts/:id
Modul kategorií
Řadí příspěvky na blogu do kategorií.
Koncové body:
GET /categoriesGET /categories/:slugPOST /categoriesPATCH /categories/:idDELETE /categories/:id
Modul Štítky
Umožňuje flexibilní označování příspěvků na blogu.
Koncové body:
GET /tagsGET /tags/:slugPOST /tagsPATCH /tags/:idDELETE /tags/:id
Modul komentářů
Podporuje vlákna komentářů a vnořené odpovědi.
Koncové body:
GET /comments/post/:postIdGET /comments/:id/repliesPOST /commentsPATCH /comments/:idDELETE /comments/:id
Možnosti API
Stránkování
Všechny koncové body seznamu podporují stránkování.
Příklad:
GET /posts?page=1&limit=6
Filtrování
Příspěvky lze filtrovat podle kategorie, štítku nebo autora.
Příklad:
GET /posts?category=web-development
Fulltextové vyhledávání
U příspěvků je implementována funkce vyhledávání.
Příklad:
GET /posts?search=nestjs+mongodb
Řazení
Odpovědi API lze třídit podle různých polí.
Příklad:
GET /posts?sortBy=createdAt&sortOrder=desc
Automatické generování slugů
Při vytváření příspěvků systém automaticky generuje z názvu slug optimalizovaný pro URL pomocí slugify .
Příklad:
Building REST APIs with NestJS
→ building-rest-apis-with-nestjs
Výpočet doby čtení
API automaticky vypočítává odhadovanou dobu čtení na základě délky obsahu příspěvků.
Konzistentní formát odpovědi API
Všechny odpovědi mají standardní strukturu:
{
"success": true,
"data": {},
"timestamp": "2026-01-01T10:00:00Z"
}
To zlepšuje integraci a ladění frontendu.
Technologický zásobník
Backend je postaven s využitím moderního Node.js stacku.
| Vrstva | Technologie |
|---|---|
| Rámec | NestJS 11 |
| Jazyk | TypeScript 5.7 |
| Databáze | MongoDB 8 |
| ODM(Organizovaný prodejce) | Mangusta 8 |
| Ověřování | Passport.js + JWT |
| Validace | validátor třídy |
| Dokumentace k API | Swagger OpenAPI |
| Zabezpečení heslem | bcrypt |
| Generátor slimáků | slugovat |
| Testování | Žert |
Struktura projektu
Projekt se řídí modulární architekturou.
src/
├── auth/
├── users/
├── posts/
├── categories/
├── tags/
├── comments/
├── common/
└── seed/
Mezi důležité komponenty patří:
Ověření DTO
Schémata mangust
Globální filtry výjimek
Interceptory odpovědi
JWT stráže
Dekoratéři rolí
Tato struktura udržuje kódovou základnu organizovanou a škálovatelnou.
Jak nainstalovat a spustit projekt
Předpoklady
Před instalací se ujistěte, že máte:
Node.js 18.17+
MongoDB 6+
npm, příze nebo pnpm
Klonování repozitáře
git clone https://github.com/bfotool/nestjs-mongodb-blog-base
cd nestjs-mongodb-blog-base
Instalace závislostí
npm install
Konfigurace proměnných prostředí
Zkopírujte soubor s ukázkovým prostředím:
cp .env.example .env
Aktualizujte následující hodnoty:
MONGODB_URI=
JWT_ACCESS_SECRET=
JWT_REFRESH_SECRET=
Začátek databáze
Naplňte databázi vzorovými daty:
npm run seed
Pro resetování a opětovné nasazení:
npm run seed:refresh
Spuštění vývojového serveru
npm run start:dev
Základní URL API:
http://localhost:3000/api/v1
Dokumentace Swaggeru:
http://localhost:3000/api/docs
Výchozí osazená data
Seed skript generuje vzorová data pro testování.
| Entita | Počítat |
|---|---|
| Uživatelé | 5 |
| Kategorie | 5 |
| Štítky | 28 let |
| Příspěvky | 10 |
| Komentáře | 6 |
Výchozí přihlašovací údaje
Heslo pro všechny registrované uživatele:
admin123
Účty:
| Role | |
|---|---|
| Administrátor | [email protected] |
| Autor | [email protected] |
| Autor | [email protected] |
| Autor | [email protected] |
| Čtenář | [email protected] |
Dokumentace Swagger API
Interaktivní dokumentace k API je k dispozici na adrese:
http://localhost:3000/api/docs
Swagger nabízí:
Interaktivní testování koncových bodů
JWT authenticationpodpora
Dokumentace schémat požadavků a odpovědí
Proč používat toto úložiště
NestJS MongoDB Blog API je silným výchozím bodem pro vývojáře, kteří vytvářejí moderní blogovací backend.
Mezi výhody patří:
Čistá modulární architektura NestJS
Vestavěné ověřování a RBAC
Dokumentace k Swagger API připravená k použití
Integrace MongoDB pomocí Mongoose
Systém pro setí databáze
Struktura projektu připraveného k produkci
Repozitář: https://github.com/bfotool/nestjs-mongodb-blog-base



