NestJS MongoDB Blog API predložak – Potpuno opremljen REST Backend za blogove

Izgradnja skalabilnog blog backenda zahtijeva dobro strukturiranu arhitekturu, sustav autentifikacije i pravilno dokumentirane API-je. NestJS MongoDB Blog API je predložak spreman za produkciju osmišljen kako bi pomogao programerima da brzo izgrade moderne blog platforme koristeći NestJS, MongoDB JWT authenticationi Swagger dokumentaciju .

Ovaj projekt pruža kompletan RESTful API uključujući module za korisnike, objave, kategorije, oznake, komentare, autentifikaciju i kontrolu pristupa temeljenu na ulogama .

Repozitorij: https://github.com/bfotool/nestjs-mongodb-blog-base

Što je NestJS MongoDB Blog API?

NestJS MongoDB Blog API je predložak otvorenog koda izgrađen s NestJS 11 i MongoDB-om koji pruža potpuno funkcionalan REST API za blog.

Namijenjen je da služi kao temelj za izgradnju:

  • Platforme za blogove

  • CMS sustavi bez glave

  • API-ji za objavljivanje sadržaja

  • Web-stranice s dokumentacijom

  • Blogovi portfelja programera

Projekt prati modularnu arhitekturu koju preporučuje NestJS, osiguravajući skalabilnost i održivost.

Repozitorij: https://github.com/bfotool/nestjs-mongodb-blog-base

Ključne značajke

Autentifikacija i autorizacija

API uključuje siguran sustav autentifikacije koji koristi JWT tokene.

Glavne značajke autentifikacije uključuju:

  • JWT tokeni za pristup i osvježavanje

  • Kontrola pristupa temeljena na ulogama(RBAC)

  • Hashiranje lozinke s bcryptom

  • Zaštićene API rute pomoću Guarda

  • Mehanizam osvježavanja tokena

Podržane su tri zadane korisničke uloge:

  • Administrator

  • Autor

  • Čitač

To olakšava upravljanje dozvolama na različitim krajnjim točkama API-ja.

Potpuni moduli bloga

Projekt uključuje nekoliko potpuno implementiranih modula koji pokrivaju sve osnovne funkcionalnosti bloga.

Modul za autorizaciju

Upravlja autentifikacijom i korisničkim sesijama.

Krajnje točke uključuju:

  • POST /auth/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

Modul korisnika

Upravlja korisničkim računima i profilima.

Krajnje točke:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /users/:id

Operacije pisanja zahtijevaju administratorske dozvole .

Modul objava

Modul za objave upravlja sadržajem bloga.

Značajke uključuju:

  • Paginacija

  • Filtriranje po kategoriji, oznaci ili autoru

  • Sortiranje

  • Pretraživanje cijelog teksta

  • Istaknute objave

Krajnje točke:

  • GET /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

Modul kategorija

Organizira objave na blogu u kategorije.

Krajnje točke:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

Modul oznaka

Omogućuje fleksibilno označavanje za objave na blogu.

Krajnje točke:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

Modul komentara

Podržava niti komentara i ugniježđene odgovore.

Krajnje točke:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /comments/:id

Mogućnosti API-ja

Paginacija

Sve krajnje točke popisa podržavaju paginaciju.

Primjer:

GET /posts?page=1&limit=6

Filtriranje

Objave se mogu filtrirati po kategoriji, oznaci ili autoru.

Primjer:

GET /posts?category=web-development

Pretraživanje cijelog teksta

Funkcionalnost pretraživanja implementirana je na objavama.

Primjer:

GET /posts?search=nestjs+mongodb

Sortiranje

API odgovori mogu se sortirati po različitim poljima.

Primjer:

GET /posts?sortBy=createdAt&sortOrder=desc

Automatsko generiranje slugova

Prilikom kreiranja objava, sustav automatski generira slug prilagođen URL-u iz naslova pomoću slugifyja .

Primjer:

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

Izračun vremena čitanja

API automatski izračunava procijenjeno vrijeme čitanja na temelju duljine sadržaja objava.

Konzistentan format API odgovora

Svi odgovori slijede standardnu ​​strukturu:

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

To poboljšava integraciju i otklanjanje pogrešaka u frontendu.

Tehnološki stog

Backend je izgrađen korištenjem modernog Node.js steka.

Sloj Tehnologija
Okvir NestJS 11
Jezik TypeScript 5.7
Baza podataka MongoDB 8
ODM Mungos 8
Autentifikacija Passport.js + JWT
Validacija validator klase
Dokumentacija API-ja Swagger OpenAPI
Sigurnost lozinke bcrypt
Generator puževa sluziti
Testiranje Šala

Struktura projekta

Projekt prati modularnu arhitekturu.

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

Važne komponente uključuju:

  • Validacija DTO-a

  • Sheme mungosa

  • Globalni filtri iznimki

  • Presretači odgovora

  • JWT čuvari

  • Dekorateri uloga

Ova struktura održava kodnu bazu organiziranom i skalabilnom.

Kako instalirati i pokrenuti projekt

Preduvjeti

Prije instalacije provjerite imate li:

  • Node.js 18.17+

  • MongoDB 6+

  • npm, pređa ili pnpm

Kloniraj repozitorij

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

Instaliranje ovisnosti

npm install

Konfiguriranje varijabli okruženja

Kopirajte primjer datoteke okruženja:

cp .env.example .env

Ažurirajte sljedeće vrijednosti:

MONGODB_URI= 
JWT_ACCESS_SECRET= 
JWT_REFRESH_SECRET= 

Popunite bazu podataka

Popunite bazu podataka s uzorkom podataka:

npm run seed

Za resetiranje i ponovno usejanje:

npm run seed:refresh

Pokrenite razvojni poslužitelj

npm run start:dev

Osnovni URL API-ja:

http://localhost:3000/api/v1

Swagger dokumentacija:

http://localhost:3000/api/docs

Zadani početni podaci

Početni skript generira uzorke podataka za testiranje.

Entitet Računati
Korisnici 5
Kategorije 5
Oznake 28
Objave 10
Komentari 6

Zadane vjerodajnice za prijavu

Lozinka za sve seed korisnike:

admin123

Računi:

Uloga E-pošta
Administrator [email protected]
Autor [email protected]
Autor [email protected]
Autor [email protected]
Čitač č[email protected]

Dokumentacija Swagger API-ja

Interaktivna API dokumentacija dostupna je na:

http://localhost:3000/api/docs

Swagger nudi:

  • Interaktivno testiranje krajnjih točaka

  • JWT authenticationpodrška

  • Dokumentacija sheme zahtjeva i odgovora

Zašto koristiti ovo spremište

NestJS MongoDB Blog API je moćna polazna točka za razvojne programere koji grade modernu pozadinsku podršku za blog.

Prednosti uključuju:

  • Čista NestJS modularna arhitektura

  • Ugrađena autentifikacija i RBAC

  • Dokumentacija za Swagger API spremna za korištenje

  • Integracija MongoDB-a pomoću Mongoosea

  • Sustav zasijavanja baze podataka

  • Struktura projekta spremna za produkciju

Repozitorij: https://github.com/bfotool/nestjs-mongodb-blog-base