Šablona NestJS MongoDB Blog API – Plně funkční REST backend pro blogy

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/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

Modul uživatelů

Spravuje uživatelské účty a profily.

Koncové body:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /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 /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

Modul kategorií

Řadí příspěvky na blogu do kategorií.

Koncové body:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

Modul Štítky

Umožňuje flexibilní označování příspěvků na blogu.

Koncové body:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

Modul komentářů

Podporuje vlákna komentářů a vnořené odpovědi.

Koncové body:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /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 E-mail
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