NestJS MongoDB Blog API-mal – Fullfunksjonell REST-backend for blogger

Å bygge en skalerbar blogg-backend krever en godt strukturert arkitektur, et autentiseringssystem og riktig dokumenterte API-er. NestJS MongoDB Blog API er en produksjonsklar backend-mal som er utviklet for å hjelpe utviklere med raskt å bygge moderne bloggplattformer ved hjelp av NestJS-, MongoDB- JWT authenticationog Swagger-dokumentasjon .

Dette prosjektet tilbyr et komplett RESTful API, inkludert moduler for brukere, innlegg, kategorier, tagger, kommentarer, autentisering og rollebasert tilgangskontroll .

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

Hva er NestJS MongoDB Blog API

NestJS MongoDB Blog API er en åpen kildekode-mal for backend bygget med NestJS 11 og MongoDB, som tilbyr et fullt funksjonelt REST API for blogger.

Den er utformet for å tjene som et fundament for bygging av:

  • Bloggplattformer

  • Headless CMS-systemer

  • API-er for innholdspublisering

  • Dokumentasjonsnettsteder

  • Blogger om utviklerportefølje

Prosjektet følger den modulære arkitekturen anbefalt av NestJS, noe som sikrer skalerbarhet og vedlikeholdbarhet.

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

Viktige funksjoner

Autentisering og autorisasjon

API-et inkluderer et sikkert autentiseringssystem som bruker JWT-tokens.

De viktigste autentiseringsfunksjonene inkluderer:

  • JWT- tilgangs- og oppdateringstokener

  • Rollebasert tilgangskontroll(RBAC)

  • Passordhashing med bcrypt

  • Beskyttede API-ruter ved hjelp av Guards

  • Mekanisme for tokenoppdatering

Tre standard brukerroller støttes:

  • Admin

  • Forfatter

  • Leser

Dette gjør det enkelt å administrere tillatelser på tvers av forskjellige API-endepunkter.

Fullstendige bloggmoduler

Prosjektet inkluderer flere fullt implementerte moduler som dekker all kjernefunksjonalitet i bloggen.

Autorisasjonsmodul

Håndterer autentisering og brukerøkter.

Endepunktene inkluderer:

  • POST /auth/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

Brukermodul

Administrerer brukerkontoer og profiler.

Endepunkter:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /users/:id

Skriveoperasjoner krever administratorrettigheter .

Innleggsmodul

Innleggsmodulen administrerer blogginnhold.

Funksjoner inkluderer:

  • Paginering

  • Filtrering etter kategori, tagg eller forfatter

  • Sortering

  • Fulltekstsøk

  • Utvalgte innlegg

Endepunkter:

  • GET /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

Kategorier Modul

Organiserer blogginnlegg i kategorier.

Endepunkter:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

Taggmodul

Tillater fleksibel tagging for blogginnlegg.

Endepunkter:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

Kommentarmodul

Støtter kommentartråder og nestede svar.

Endepunkter:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /comments/:id

API-funksjoner

Paginering

Alle listeendepunkter støtter paginering.

Eksempel:

GET /posts?page=1&limit=6

Filtrering

Innlegg kan filtreres etter kategori, tagg eller forfatter.

Eksempel:

GET /posts?category=web-development

Fulltekstsøk

Søkefunksjonalitet er implementert på innlegg.

Eksempel:

GET /posts?search=nestjs+mongodb

Sortering

API-svar kan sorteres etter forskjellige felt.

Eksempel:

GET /posts?sortBy=createdAt&sortOrder=desc

Automatisk generering av snegler

Når du oppretter innlegg, genererer systemet automatisk en URL-vennlig slug fra tittelen ved hjelp av slugify .

Eksempel:

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

Beregning av lesetid

API-et beregner automatisk estimert lesetid basert på innholdslengden i innleggene.

Konsekvent API-svarformat

Alle svar følger en standardstruktur:

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

Dette forbedrer frontend-integrasjon og feilsøking.

Teknologistabel

Backend-en er bygget med en moderne Node.js-stack.

Lag Teknologi
Rammeverk NestJS 11
Språk TypeScript 5.7
Database MongoDB 8
ODM Mongoose 8
Autentisering Passport.js + JWT
Validering klassevalidator
API-dokumentasjon Swagger OpenAPI
Passordsikkerhet bcrypt
Sluggenerator slugify
Testing Spøk

Prosjektstruktur

Prosjektet følger en modulær arkitektur.

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

Viktige komponenter inkluderer:

  • DTO-validering

  • Mongoose-skjemaer

  • Globale unntaksfiltre

  • Responsavlyttere

  • JWT-vakter

  • Rolledekoratører

Denne strukturen holder kodebasen organisert og skalerbar.

Slik installerer og kjører du prosjektet

Forutsetninger

Før installasjon, sørg for at du har:

  • Node.js 18.17+

  • MongoDB 6+

  • npm, garn eller pnpm

Klon depotet

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

Installer avhengigheter

npm install

Konfigurer miljøvariabler

Kopier eksempelmiljøfilen:

cp .env.example .env

Oppdater følgende verdier:

MONGODB_URI= 
JWT_ACCESS_SECRET= 
JWT_REFRESH_SECRET= 

Seed-databasen

Fyll databasen med eksempeldata:

npm run seed

For å tilbakestille og så på nytt:

npm run seed:refresh

Start utviklingsserveren

npm run start:dev

API-basis-URL:

http://localhost:3000/api/v1

Swagger-dokumentasjon:

http://localhost:3000/api/docs

Standard seedede data

Seed-skriptet genererer eksempeldata for testing.

Enhet Telle
Brukere 5
Kategorier 5
Tagger 28
Innlegg 10
Kommentarer 6

Standard påloggingsinformasjon

Passord for alle seedede brukere:

admin123

Kontoer:

Rolle E-post
Admin [email protected]
Forfatter [email protected]
Forfatter [email protected]
Forfatter [email protected]
Leser [email protected]

Swagger API-dokumentasjon

Interaktiv API-dokumentasjon er tilgjengelig på:

http://localhost:3000/api/docs

Swagger tilbyr:

  • Interaktiv endepunktstesting

  • JWT authenticationstøtte

  • Dokumentasjon av forespørsels- og svarskjema

Hvorfor bruke dette arkivet

NestJS MongoDB Blog API er et kraftig utgangspunkt for utviklere som bygger et moderne blogg-backend.

Fordeler inkluderer:

  • Ren NestJS modulær arkitektur

  • Innebygd autentisering og RBAC

  • Bruksklar Swagger API-dokumentasjon

  • MongoDB-integrasjon ved hjelp av Mongoose

  • System for databasesåing

  • Produksjonsklar prosjektstruktur

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