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/registerPOST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/profile
Modul uporabnikov
Upravlja uporabniške račune in profile.
Končne točke:
GET /usersGET /users/:idPATCH /users/:idDELETE /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 /postsGET /posts/featuredGET /posts/:slugPOST /postsPATCH /posts/:idDELETE /posts/:id
Modul kategorij
Organizira objave na blogu v kategorije.
Končne točke:
GET /categoriesGET /categories/:slugPOST /categoriesPATCH /categories/:idDELETE /categories/:id
Modul oznak
Omogoča prilagodljivo označevanje objav v spletnem dnevniku.
Končne točke:
GET /tagsGET /tags/:slugPOST /tagsPATCH /tags/:idDELETE /tags/:id
Modul za komentarje
Podpira niti komentarjev in vgnezdene odgovore.
Končne točke:
GET /comments/post/:postIdGET /comments/:id/repliesPOST /commentsPATCH /comments/:idDELETE /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



