NestJS MongoDB Blog API-skabelon – Fuldt udstyret REST-backend til blogs

Det kræver en velstruktureret arkitektur, et godkendelsessystem og korrekt dokumenterede API'er at opbygge en skalerbar blog-backend. NestJS MongoDB Blog API'en er en produktionsklar backend-skabelon, der er designet til at hjælpe udviklere med hurtigt at bygge moderne blogplatforme ved hjælp af NestJS-, MongoDB- JWT authenticationog Swagger-dokumentation .

Dette projekt leverer en komplet RESTful API, inklusive moduler til brugere, indlæg, kategorier, tags, kommentarer, godkendelse og rollebaseret adgangskontrol .

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

Hvad er NestJS MongoDB Blog API

NestJS MongoDB Blog API er en open source-backend-skabelon bygget med NestJS 11 og MongoDB, der leverer en fuldt funktionel blog-REST API.

Den er designet til at fungere som fundament for at bygge:

  • Blogplatforme

  • Headless CMS-systemer

  • API'er til indholdsudgivelse

  • Dokumentationswebsteder

  • Blogs om udviklerportefølje

Projektet følger den modulære arkitektur anbefalet af NestJS, hvilket sikrer skalerbarhed og vedligeholdelse.

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

Nøglefunktioner

Godkendelse og autorisation

API'en inkluderer et sikkert godkendelsessystem, der bruger JWT-tokens.

De vigtigste godkendelsesfunktioner omfatter:

  • JWT- adgangs- og opdateringstokens

  • Rollebaseret adgangskontrol(RBAC)

  • Adgangskodehashing med bcrypt

  • Beskyttede API-ruter ved hjælp af Guards

  • Mekanisme for tokenopdatering

Tre standardbrugerroller understøttes:

  • Admin

  • Forfatter

  • Læser

Dette gør det nemt at administrere tilladelser på tværs af forskellige API-slutpunkter.

Fuld blogmoduler

Projektet inkluderer adskillige fuldt implementerede moduler, der dækker alle kernefunktioner i bloggen.

Godkendelsesmodul

Håndterer godkendelse og brugersessioner.

Endepunkter inkluderer:

  • POST /auth/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

Brugermodul

Administrerer brugerkonti og profiler.

Endepunkter:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /users/:id

Skrivehandlinger kræver administratorrettigheder .

Indlægsmodul

Indlægsmodulet administrerer blogindhold.

Funktioner inkluderer:

  • Paginering

  • Filtrering efter kategori, tag eller forfatter

  • Sortering

  • Fuldtekstsøgning

  • Fremhævede indlæg

Endepunkter:

  • GET /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

Kategorier Modul

Organiserer blogindlæg i kategorier.

Endepunkter:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

Tags-modul

Tillader fleksibel tagging til blogindlæg.

Endepunkter:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

Kommentarmodul

Understøtter kommentartråde og indbyggede svar.

Endepunkter:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /comments/:id

API-funktioner

Paginering

Alle listeslutpunkter understøtter paginering.

Eksempel:

GET /posts?page=1&limit=6

Filtrering

Indlæg kan filtreres efter kategori, tag eller forfatter.

Eksempel:

GET /posts?category=web-development

Fuldtekstsøgning

Søgefunktionalitet er implementeret på opslag.

Eksempel:

GET /posts?search=nestjs+mongodb

Sortering

API-svar kan sorteres efter forskellige felter.

Eksempel:

GET /posts?sortBy=createdAt&sortOrder=desc

Automatisk generering af slugs

Når systemet opretter indlæg, genererer det automatisk en URL-venlig slug ud fra titlen ved hjælp af slugify .

Eksempel:

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

Beregning af læsetid

API'en beregner automatisk den estimerede læsetid baseret på indholdets længde i opslagene.

Konsistent API-svarformat

Alle svar følger en standardstruktur:

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

Dette forbedrer frontend-integration og fejlfinding.

Teknologistak

Backend'en er bygget ved hjælp af en moderne Node.js-stak.

Lag Teknologi
Ramme NestJS 11
Sprog TypeScript 5.7
Database MongoDB 8
ODM Mongoose 8
Godkendelse Passport.js + JWT
Validering klassevalidator
API-dokumentation Swagger OpenAPI
Adgangskodesikkerhed bcrypt
Sluggenerator slugify
Testning Spøg

Projektstruktur

Projektet følger en modulær arkitektur.

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

Vigtige komponenter omfatter:

  • DTO-validering

  • Mongoose-skemaer

  • Globale undtagelsesfiltre

  • Responsinterceptors

  • JWT-vagter

  • Rolledekoratører

Denne struktur holder kodebasen organiseret og skalerbar.

Sådan installeres og køres projektet

Forudsætninger

Før installation skal du sørge for at have:

  • Node.js 18.17+

  • MongoDB 6+

  • npm, garn eller pnpm

Klon arkivet

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

Installer afhængigheder

npm install

Konfigurer miljøvariabler

Kopiér eksempelmiljøfilen:

cp .env.example .env

Opdater følgende værdier:

MONGODB_URI= 
JWT_ACCESS_SECRET= 
JWT_REFRESH_SECRET= 

Seed-databasen

Udfyld databasen med eksempeldata:

npm run seed

Sådan nulstilles og genbehandles:

npm run seed:refresh

Start udviklingsserveren

npm run start:dev

API-basis-URL:

http://localhost:3000/api/v1

Swagger-dokumentation:

http://localhost:3000/api/docs

Standard seedede data

Seed-scriptet genererer eksempeldata til testning.

Enhed Tælle
Brugere 5
Kategorier 5
Tags 28
Indlæg 10
Kommentarer 6

Standard loginoplysninger

Adgangskode til alle seedede brugere:

admin123

Konti:

Rolle E-mail
Admin [email protected]
Forfatter [email protected]
Forfatter [email protected]
Forfatter [email protected]
Læser [email protected]

Swagger API-dokumentation

Interaktiv API-dokumentation er tilgængelig på:

http://localhost:3000/api/docs

Swagger tilbyder:

  • Interaktiv endpoint-testning

  • JWT authenticationstøtte

  • Dokumentation af anmodnings- og svarskema

Hvorfor bruge dette arkiv

NestJS MongoDB Blog API'en er et stærkt udgangspunkt for udviklere, der bygger et moderne blog-backend.

Fordele inkluderer:

  • Ren NestJS modulær arkitektur

  • Indbygget godkendelse og RBAC

  • Brugsklar Swagger API-dokumentation

  • MongoDB-integration ved hjælp af Mongoose

  • Database seeding system

  • Produktionsklar projektstruktur

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