Predloga NestJS MongoDB Blog API – polno opremljen REST zaledni sistem za bloge

Gradnja skalabilnega zalednega sistema bloga zahteva dobro strukturirano arhitekturo, sistem za preverjanje pristnosti in ustrezno dokumentirane API-je. NestJS MongoDB Blog API je predloga za zaledni sistem, pripravljena za produkcijo, zasnovana tako, da razvijalcem pomaga hitro zgraditi sodobne platforme za bloge z uporabo dokumentacije NestJS, MongoDB JWT authenticationin Swagger .

Ta projekt ponuja celoten RESTful API, vključno z moduli za uporabnike, objave, kategorije, oznake, komentarje, preverjanje pristnosti in nadzor dostopa na podlagi vlog .

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

Kaj je NestJS MongoDB Blog API

API za blog NestJS MongoDB je odprtokodna predloga za zaledni sistem, zgrajena z NestJS 11 in MongoDB, ki zagotavlja popolnoma funkcionalen REST API za blog.

Zasnovan je kot temelj za gradnjo:

  • Platforme za bloge

  • Brezglavi CMS sistemi

  • API-ji za objavljanje vsebin

  • Spletna mesta z dokumentacijo

  • Blogi razvijalskega portfelja

Projekt sledi modularni arhitekturi, ki jo priporoča NestJS, kar zagotavlja skalabilnost in vzdrževanje.

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

Ključne lastnosti

Avtentikacija in avtorizacija

API vključuje varen sistem preverjanja pristnosti z uporabo žetonov JWT.

Glavne funkcije preverjanja pristnosti vključujejo:

  • Žetoni za dostop in osvežitev JWT

  • Nadzor dostopa na podlagi vlog(RBAC)

  • Zgoščevanje gesel z bcrypt

  • Zaščitene poti API-ja z uporabo Guards

  • Mehanizem osveževanja žetonov

Podprte so tri privzete uporabniške vloge:

  • Skrbnik

  • Avtor

  • Bralec

To olajša upravljanje dovoljenj v različnih končnih točkah API-ja.

Celotni moduli bloga

Projekt vključuje več popolnoma implementiranih modulov, ki pokrivajo vse osnovne funkcionalnosti bloga.

Modul za avtorizacijo

Upravlja overjanje in uporabniške seje.

Končne točke vključujejo:

  • POST /auth/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

Modul uporabnikov

Upravlja uporabniške račune in profile.

Končne točke:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /users/:id

Za operacije pisanja so potrebna skrbniška dovoljenja .

Modul objav

Modul objav upravlja vsebino bloga.

Značilnosti vključujejo:

  • Oštevilčenje strani

  • Filtriranje po kategoriji, oznaki ali avtorju

  • Razvrščanje

  • Iskanje po celotnem besedilu

  • Izpostavljene objave

Končne točke:

  • GET /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

Modul kategorij

Organizira objave na blogu v kategorije.

Končne točke:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

Modul oznak

Omogoča prilagodljivo označevanje objav v spletnem dnevniku.

Končne točke:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

Modul za komentarje

Podpira niti komentarjev in vgnezdene odgovore.

Končne točke:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /comments/:id

Zmogljivosti API-ja

Oštevilčenje strani

Vse končne točke seznama podpirajo oštevilčenje.

Primer:

GET /posts?page=1&limit=6

Filtriranje

Objave je mogoče filtrirati po kategoriji, oznaki ali avtorju.

Primer:

GET /posts?category=web-development

Iskanje po celotnem besedilu

Funkcija iskanja je implementirana v objavah.

Primer:

GET /posts?search=nestjs+mongodb

Razvrščanje

Odgovore API-ja je mogoče razvrstiti po različnih poljih.

Primer:

GET /posts?sortBy=createdAt&sortOrder=desc

Samodejno generiranje slugov

Pri ustvarjanju objav sistem iz naslova z uporabo funkcije slugify samodejno ustvari URL-prijazen slug .

Primer:

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

Izračun časa branja

API samodejno izračuna predvideni čas branja na podlagi dolžine vsebine objav.

Dosledna oblika odgovora API-ja

Vsi odgovori sledijo standardni strukturi:

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

To izboljša integracijo in odpravljanje napak v frontendu.

Tehnološki sklad

Zaledni del je zgrajen z uporabo sodobnega sklada Node.js.

Plast Tehnologija
Okvir NestJS 11
Jezik TypeScript 5.7
Zbirka podatkov MongoDB 8
ODM Mungos 8
Avtentikacija Passport.js + JWT
Validacija validator razreda
Dokumentacija API-ja Swagger OpenAPI
Varnost gesla bcrypt
Generator polžev slugirati
Testiranje Šala

Struktura projekta

Projekt sledi modularni arhitekturi.

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

Pomembne komponente vključujejo:

  • Validacija DTO

  • Sheme mungosov

  • Globalni filtri izjem

  • Prestrezniki odziva

  • JWT stražarji

  • Vloge dekoraterjev

Ta struktura ohranja kodno bazo organizirano in prilagodljivo.

Kako namestiti in zagnati projekt

Predpogoji

Pred namestitvijo se prepričajte, da imate:

  • Node.js 18.17+

  • MongoDB 6+

  • npm, preja ali pnpm

Kloniraj repozitorij

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

Namestitev odvisnosti

npm install

Konfiguriraj spremenljivke okolja

Kopirajte primer datoteke okolja:

cp .env.example .env

Posodobite naslednje vrednosti:

MONGODB_URI= 
JWT_ACCESS_SECRET= 
JWT_REFRESH_SECRET= 

Vključitev podatkovne baze

Napolnite bazo podatkov z vzorčnimi podatki:

npm run seed

Za ponastavitev in ponovno nastavitev:

npm run seed:refresh

Zaženite razvojni strežnik

npm run start:dev

Osnovni URL API-ja:

http://localhost:3000/api/v1

Dokumentacija Swaggerja:

http://localhost:3000/api/docs

Privzeti podatki o semenih

Seed skript generira vzorčne podatke za testiranje.

Entiteta Štetje
Uporabniki 5
Kategorije 5
Oznake 28
Objave 10
Komentarji 6

Privzete prijavne poverilnice

Geslo za vse seedirane uporabnike:

admin123

Računi:

Vloga E-pošta
Skrbnik [email protected]
Avtor [email protected]
Avtor [email protected]
Avtor [email protected]
Bralec [email protected]

Dokumentacija Swagger API-ja

Interaktivna dokumentacija API-ja je na voljo na:

http://localhost:3000/api/docs

Swagger ponuja:

  • Interaktivno testiranje končnih točk

  • JWT authenticationpodpora

  • Dokumentacija sheme zahtev in odgovorov

Zakaj uporabljati to skladišče

API za bloge NestJS MongoDB je močno izhodišče za razvijalce, ki gradijo sodoben zaledni sistem za bloge.

Prednosti vključujejo:

  • Modularna arhitektura Čistega NestJS-a

  • Vgrajena avtentikacija in RBAC

  • Dokumentacija za Swagger API, pripravljena za uporabo

  • Integracija MongoDB z uporabo Mongoose

  • Sistem za sejanje v podatkovni bazi

  • Struktura projekta, pripravljenega za produkcijo

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