NestJS MongoDB Blog API -mallipohja – Täysin varusteltu REST-taustajärjestelmä blogeille

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

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

Käyttäjämoduuli

Hallinnoi käyttäjätilejä ja -profiileja.

Päätepisteet:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

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

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

Luokat Moduuli

Järjestää blogikirjoitukset kategorioihin.

Päätepisteet:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

Tunnisteet-moduuli

Mahdollistaa joustavan tägäyksen blogikirjoituksiin.

Päätepisteet:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

Kommenttimoduuli

Tukee kommenttiketjuja ja sisäkkäisiä vastauksia.

Päätepisteet:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

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