Skaalautuvan blogialustan rakentaminen vaatii hyvin jäsennellyn arkkitehtuurin, todennusjärjestelmän ja asianmukaisesti dokumentoidut API:t. NestJS MongoDB Blog API on tuotantovalmis backend-malli, joka on suunniteltu auttamaan kehittäjiä rakentamaan nopeasti moderneja blogialustoja NestJS:n, MongoDB:n JWT authentication, ja Swagger-dokumentaation avulla .
Tämä projekti tarjoaa täydellisen RESTful-rajapinnan, joka sisältää moduuleja käyttäjille, viesteille, luokille, tunnisteille, kommenteille, todennukselle ja roolipohjaiselle käyttöoikeuksien hallinnalle .
Arkisto: https://github.com/bfotool/nestjs-mongodb-blog-base
Mikä on NestJS MongoDB Blog API?
NestJS MongoDB Blog API on avoimen lähdekoodin taustajärjestelmämalli, joka on rakennettu NestJS 11:llä ja MongoDB: llä ja tarjoaa täysin toimivan blogin REST-rajapinnan.
Se on suunniteltu toimimaan perustana rakentaa:
Blogialustat
Headless CMS -järjestelmät
Sisällönjulkaisun API:t
Dokumentaatiosivustot
Kehittäjäportfolioblogit
Projekti noudattaa NestJS:n suosittelemaa modulaarista arkkitehtuuria, mikä varmistaa skaalautuvuuden ja ylläpidettävyyden.
Arkisto: https://github.com/bfotool/nestjs-mongodb-blog-base
Tärkeimmät ominaisuudet
Todennus ja valtuutus
API sisältää suojatun todennusjärjestelmän, joka käyttää JWT-tokeneja.
Tärkeimpiä todennusominaisuuksia ovat:
JWT:n käyttö- ja päivitystunnukset
Roolipohjainen käyttöoikeuksien hallinta(RBAC)
Salasanan hajauttaminen bcryptillä
Suojatut API-reitit Guardsin avulla
Tunnuksen päivitysmekanismi
Kolmea oletuskäyttäjäroolia tuetaan:
Ylläpitäjä
Kirjoittaja
Lukija
Tämä helpottaa käyttöoikeuksien hallintaa eri API-päätepisteissä.
Täydelliset blogimoduulit
Projekti sisältää useita täysin toteutettuja moduuleja, jotka kattavat kaikki blogin ydintoiminnot.
Valtuutusmoduuli
Käsittelee todennusta ja käyttäjäistuntoja.
Päätepisteisiin kuuluvat:
POST /auth/registerPOST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/profile
Käyttäjämoduuli
Hallinnoi käyttäjätilejä ja -profiileja.
Päätepisteet:
GET /usersGET /users/:idPATCH /users/:idDELETE /users/:id
Kirjoitustoiminnot vaativat järjestelmänvalvojan oikeudet .
Viestit-moduuli
Viestit-moduuli hallinnoi blogin sisältöä.
Ominaisuuksiin kuuluvat:
Sivunumerointi
Suodatus luokan, tunnisteen tai tekijän mukaan
Lajittelu
Kokotekstihaku
Esittelyssä olevat julkaisut
Päätepisteet:
GET /postsGET /posts/featuredGET /posts/:slugPOST /postsPATCH /posts/:idDELETE /posts/:id
Luokat Moduuli
Järjestää blogikirjoitukset kategorioihin.
Päätepisteet:
GET /categoriesGET /categories/:slugPOST /categoriesPATCH /categories/:idDELETE /categories/:id
Tunnisteet-moduuli
Mahdollistaa joustavan tägäyksen blogikirjoituksiin.
Päätepisteet:
GET /tagsGET /tags/:slugPOST /tagsPATCH /tags/:idDELETE /tags/:id
Kommenttimoduuli
Tukee kommenttiketjuja ja sisäkkäisiä vastauksia.
Päätepisteet:
GET /comments/post/:postIdGET /comments/:id/repliesPOST /commentsPATCH /comments/:idDELETE /comments/:id
API-ominaisuudet
Sivunumerointi
Kaikki listan päätepisteet tukevat sivutusta.
Esimerkki:
GET /posts?page=1&limit=6
Suodatus
Julkaisuja voi suodattaa luokan, tunnisteen tai kirjoittajan mukaan.
Esimerkki:
GET /posts?category=web-development
Kokotekstihaku
Hakutoiminto on toteutettu viesteihin.
Esimerkki:
GET /posts?search=nestjs+mongodb
Lajittelu
API-vastauksia voidaan lajitella eri kenttien mukaan.
Esimerkki:
GET /posts?sortBy=createdAt&sortOrder=desc
Automaattinen etanoiden luonti
Kun luot viestejä, järjestelmä luo automaattisesti URL-ystävällisen slug-otsikon käyttämällä slugifyta .
Esimerkki:
Building REST APIs with NestJS
→ building-rest-apis-with-nestjs
Lukuajan laskeminen
API laskee automaattisesti arvioidun lukuajan viestien sisällön pituuden perusteella.
Yhdenmukainen API-vastausmuoto
Kaikki vastaukset noudattavat vakiorakennetta:
{
"success": true,
"data": {},
"timestamp": "2026-01-01T10:00:00Z"
}
Tämä parantaa käyttöliittymän integrointia ja virheenkorjausta.
Teknologiapino
Taustajärjestelmä on rakennettu käyttämällä modernia Node.js-pinoa.
| Kerros | Teknologia |
|---|---|
| Kehys | NestJS 11 |
| Kieli | TypeScript 5.7 |
| Tietokanta | MongoDB 8 |
| ODM | Mungo 8 |
| Todennus | Passport.js + JWT |
| Validointi | luokan validaattori |
| API-dokumentaatio | Swagger OpenAPI |
| Salasanan suojaus | bcrypt |
| Etageneraattori | slugify |
| Testaus | Leikki |
Projektin rakenne
Projekti noudattaa modulaarista arkkitehtuuria.
src/
├── auth/
├── users/
├── posts/
├── categories/
├── tags/
├── comments/
├── common/
└── seed/
Tärkeitä komponentteja ovat:
DTO-validointi
Mangustikaaviot
Globaalit poikkeussuodattimet
Vastaushyökkääjät
JWT-suojukset
Roolimaalarit
Tämä rakenne pitää koodikannan järjestyksessä ja skaalautuvana.
Projektin asentaminen ja suorittaminen
Edellytykset
Ennen asennusta varmista, että sinulla on:
Node.js 18.17+
MongoDB 6+
npm, lanka tai pnpm
Kloonaa arkisto
git clone https://github.com/bfotool/nestjs-mongodb-blog-base
cd nestjs-mongodb-blog-base
Asenna riippuvuudet
npm install
Ympäristömuuttujien määrittäminen
Kopioi esimerkkiympäristötiedosto:
cp .env.example .env
Päivitä seuraavat arvot:
MONGODB_URI=
JWT_ACCESS_SECRET=
JWT_REFRESH_SECRET=
Siemennä tietokanta
Täytä tietokanta esimerkkitiedoilla:
npm run seed
Nollaaminen ja uudelleenasennus:
npm run seed:refresh
Käynnistä kehityspalvelin
npm run start:dev
API-perus-URL:
http://localhost:3000/api/v1
Swaggerin dokumentaatio:
http://localhost:3000/api/docs
Oletusarvoiset siementiedot
Siemenskripti luo esimerkkidataa testausta varten.
| Yksikkö | Laskea |
|---|---|
| Käyttäjät | 5 |
| Luokat | 5 |
| Tunnisteet | 28 |
| Viestit | 10 |
| Kommentit | 6 |
Oletuskirjautumistiedot
Salasana kaikille siemennetyille käyttäjille:
admin123
Tilit:
| Rooli | Sähköposti |
|---|---|
| Ylläpitäjä | [email protected] |
| Kirjoittaja | [email protected] |
| Kirjoittaja | [email protected] |
| Kirjoittaja | [email protected] |
| Lukija | [email protected] |
Swagger-rajapinnan dokumentaatio
Interaktiivisen API:n dokumentaatio on saatavilla osoitteessa:
http://localhost:3000/api/docs
Swagger tarjoaa:
Interaktiivinen päätepistetestaus
JWT authenticationtukea
Pyyntö- ja vastauskaavion dokumentaatio
Miksi käyttää tätä arkistoa
NestJS MongoDB Blog API on tehokas lähtökohta kehittäjille modernin blogipohjan rakentamiseen.
Etuihin kuuluvat:
Puhdas NestJS-modulaarinen arkkitehtuuri
Sisäänrakennettu todennus ja RBAC
Käyttövalmis Swagger API -dokumentaatio
MongoDB-integraatio Mongoosea käyttäen
Tietokannan kylvöjärjestelmä
Tuotantovalmiin projektin rakenne
Arkisto: https://github.com/bfotool/nestjs-mongodb-blog-base



