NestJS MongoDB Blog API-sjabloon – Volledig functionele REST-backend voor blogs

Het bouwen van een schaalbare blogbackend vereist een goed gestructureerde architectuur, een authenticatiesysteem en correct gedocumenteerde API's. De NestJS MongoDB Blog API is een productiegereed backend-sjabloon dat is ontworpen om ontwikkelaars te helpen snel moderne blogplatformen te bouwen met behulp van NestJS, MongoDB JWT authenticationen Swagger-documentatie .

Dit project biedt een complete RESTful API met module voor gebruikers, berichten, categorieën, tags, reacties, authenticatie en op rollen gebaseerde toegangscontrole .

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

Wat is de NestJS MongoDB Blog API?

De NestJS MongoDB Blog API is een open-source backend-template, gebouwd met NestJS 11 en MongoDB, die een volledig functionele REST API voor blogs biedt.

Het is ontworpen om als fundering te dienen voor de bouw van:

  • Blogplatforms

  • Headless CMS-systemen

  • API's voor het publiceren van content

  • Documentatiewebsites

  • Blogs over ontwikkelaarsportfolio's

Het project volgt de modulaire architectuur die door NestJS wordt aanbevolen, wat schaalbaarheid en onderhoudbaarheid garandeert.

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

Belangrijkste kenmerken

Authenticatie en autorisatie

De API bevat een beveiligd authenticatiesysteem dat gebruikmaakt van JWT-tokens.

De belangrijkste authenticatiefuncties zijn onder andere:

  • JWT- toegangs- en vernieuwingstokens

  • Op rollen gebaseerd toegangsbeheer(RBAC)

  • Wachtwoordhashing met bcrypt

  • Beveiligde API-routes met behulp van Guards

  • Mechanisme voor het vernieuwen van tokens

Er worden drie standaard gebruikersrollen ondersteund:

  • Beheerder

  • Auteur

  • Lezer

Dit maakt het eenvoudig om machtigingen te beheren voor verschillende API-eindpunten.

Volledige blogmodule

Het project omvat diverse volledig uitgewerkte module die alle kernfunctionaliteiten van de blog afdekken.

Auth-module

Regelt authenticatie en gebruikerssessies.

De eindpunten omvatten:

  • POST /auth/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

Gebruikersmodule

Beheert gebruikersaccounts en -profielen.

Eindpunten:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /users/:id

Schrijfbewerkingen vereisen beheerdersrechten .

Berichtenmodule

De berichtenmodule beheert de bloginhoud.

De kenmerken omvatten:

  • Paginering

  • Filteren op categorie, tag of auteur

  • Sorteren

  • Zoeken in de volledige tekst

  • Uitgelichte berichten

Eindpunten:

  • GET /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

Categorieënmodule

Organiseert blogberichten in categorieën.

Eindpunten:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

Tags-module

Biedt flexibele tagmogelijkheden voor blogberichten.

Eindpunten:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

Opmerkingenmodule

Ondersteunt commentaarreeksen en geneste reacties.

Eindpunten:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /comments/:id

API-mogelijkheden

Paginering

Alle lijst-eindpunten ondersteunen paginering.

Voorbeeld:

GET /posts?page=1&limit=6

Filteren

Berichten kunnen worden gefilterd op categorie, tag of auteur.

Voorbeeld:

GET /posts?category=web-development

Zoeken in de volledige tekst

De zoekfunctie is geïmplementeerd voor berichten.

Voorbeeld:

GET /posts?search=nestjs+mongodb

Sorteren

API-reacties kunnen op verschillende velden worden gesorteerd.

Voorbeeld:

GET /posts?sortBy=createdAt&sortOrder=desc

Automatische sluggeneratie

Bij het aanmaken van berichten genereert het systeem automatisch een URL-vriendelijke slug op basis van de titel met behulp van slugify .

Voorbeeld:

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

Berekening van de leestijd

De API berekent automatisch de geschatte leestijd op basis van de lengte van de berichten.

Consistente API-responsindeling

Alle antwoorden volgen een standaardstructuur:

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

Dit verbetert de frontend-integratie en het debuggen.

Technologie-stack

De backend is gebouwd met behulp van een moderne Node.js-stack.

Laag Technologie
Kader NestJS 11
Taal TypeScript 5.7
Database MongoDB 8
ODM Mangoest 8
Authenticatie Passport.js + JWT
Geldigmaking klasse-validator
API-documentatie Swagger OpenAPI
Wachtwoordbeveiliging bcrypt
Slakkengenerator slugify
Testen Grap

Projectstructuur

Het project volgt een modulaire architectuur.

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

Belangrijke onderdelen zijn onder meer:

  • DTO-validatie

  • Mangoose schema's

  • Globale uitzonderingsfilters

  • Responsonderscheppers

  • JWT-bewakers

  • Rol van decorateurs

Deze structuur zorgt ervoor dat de codebase georganiseerd en schaalbaar blijft.

Hoe installeer en voer ik het project uit?

Voorwaarden

Zorg ervoor dat u vóór de installatie het volgende hebt:

  • Node.js 18.17+

  • MongoDB 6+

  • npm, yarn of pnpm

Kloon de repository

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

Installeer afhankelijkheden

npm install

Omgevingsvariabelen configureren

Kopieer het voorbeeldomgevingsbestand:

cp .env.example .env

Werk de volgende waarden bij:

MONGODB_URI= 
JWT_ACCESS_SECRET= 
JWT_REFRESH_SECRET= 

Vul de database met gegevens.

Vul de database met voorbeeldgegevens:

npm run seed

Om te resetten en opnieuw te seeden:

npm run seed:refresh

Start de ontwikkelingsserver

npm run start:dev

API-basis-URL:

http://localhost:3000/api/v1

Swagger-documentatie:

http://localhost:3000/api/docs

Standaard zaadgegevens

Het seed-script genereert voorbeeldgegevens voor testdoeleinden.

Entiteit Graaf
Gebruikers 5
Categorieën 5
Tags 28
Berichten 10
Opmerkingen 6

Standaard inloggegevens

Wachtwoord voor alle gebruikers met een seed-toegang:

admin123

Rekeningen:

Rol E-mail
Beheerder [email protected]
Auteur [email protected]
Auteur [email protected]
Auteur [email protected]
Lezer [email protected]

Swagger API-documentatie

Interactieve API-documentatie is beschikbaar op:

http://localhost:3000/api/docs

Swagger biedt:

  • Interactieve eindpunttesten

  • JWT authenticationsteun

  • Documentatie van het aanvraag- en antwoordschema

Waarom deze repository gebruiken?

De NestJS MongoDB Blog API is een krachtig uitgangspunt voor ontwikkelaars die een moderne blogbackend willen bouwen.

De voordelen zijn onder meer:

  • Schone modulaire architectuur van NestJS

  • Ingebouwde authenticatie en RBAC

  • Kant-en-klare Swagger API-documentatie

  • MongoDB-integratie met Mongoose

  • Database -invoersysteem

  • Productieklare projectstructuur

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