Modello API per blog NestJS MongoDB: backend REST completo per blog

Per creare un backend scalabile per un blog, è necessario disporre di un'architettura ben strutturata, di un sistema di autenticazione e di API adeguatamente documentate. L' API NestJS MongoDB Blog è un modello di backend pronto per la produzione, progettato per aiutare gli sviluppatori a creare rapidamente piattaforme di blog moderne utilizzando la documentazione di NestJS, MongoDB JWT authenticatione Swagger .

Questo progetto fornisce un'API RESTful completa che include moduli per utenti, post, categorie, tag, commenti, autenticazione e controllo degli accessi basato sui ruoli .

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

Che cos'è NestJS MongoDB Blog API

La NestJS MongoDB Blog API è un modello backend open source creato con NestJS 11 e MongoDB che fornisce una REST API per blog completamente funzionale.

È progettato per fungere da base per la costruzione di:

  • Piattaforme di blog

  • Sistemi CMS headless

  • API per la pubblicazione di contenuti

  • Siti web di documentazione

  • Blog del portfolio degli sviluppatori

Il progetto segue l' architettura modulare raccomandata da NestJS, garantendo scalabilità e manutenibilità.

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

Caratteristiche principali

Autenticazione e autorizzazione

L'API include un sistema di autenticazione sicuro che utilizza token JWT.

Le principali funzionalità di autenticazione includono:

  • Token di accesso e aggiornamento JWT

  • Controllo degli accessi basato sui ruoli(RBAC)

  • Hashing delle password con bcrypt

  • Percorsi API protetti tramite Guards

  • Meccanismo di aggiornamento del token

Sono supportati tre ruoli utente predefiniti:

  • Amministratore

  • Autore

  • Lettore

Ciò semplifica la gestione delle autorizzazioni tra diversi endpoint API.

Moduli blog completi

Il progetto include diversi moduli completamente implementati che coprono tutte le funzionalità principali del blog.

Modulo di autenticazione

Gestisce l'autenticazione e le sessioni utente.

Gli endpoint includono:

  • POST /auth/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

Modulo Utenti

Gestisce gli account e i profili utente.

Punti finali:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /users/:id

Le operazioni di scrittura richiedono autorizzazioni di amministratore .

Modulo Post

Il modulo post gestisce i contenuti del blog.

Le caratteristiche includono:

  • Paginazione

  • Filtraggio per categoria, tag o autore

  • Ordinamento

  • Ricerca full-text

  • Post in evidenza

Punti finali:

  • GET /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

Modulo Categorie

Organizza i post del blog in categorie.

Punti finali:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

Modulo Tag

Consente un tagging flessibile per i post del blog.

Punti finali:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

Modulo commenti

Supporta thread di commenti e risposte nidificate.

Punti finali:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /comments/:id

Capacità API

Paginazione

Tutti gli endpoint dell'elenco supportano la paginazione.

Esempio:

GET /posts?page=1&limit=6

Filtraggio

I post possono essere filtrati per categoria, tag o autore.

Esempio:

GET /posts?category=web-development

Ricerca full-text

La funzionalità di ricerca è implementata nei post.

Esempio:

GET /posts?search=nestjs+mongodb

Ordinamento

Le risposte API possono essere ordinate in base a campi diversi.

Esempio:

GET /posts?sortBy=createdAt&sortOrder=desc

Generazione automatica di slug

Quando si creano post, il sistema genera automaticamente uno slug URL-friendly dal titolo utilizzando slugify .

Esempio:

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

Calcolo del tempo di lettura

L'API calcola automaticamente il tempo di lettura stimato in base alla lunghezza dei contenuti dei post.

Formato di risposta API coerente

Tutte le risposte seguono una struttura standard:

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

Ciò migliora l'integrazione frontend e il debug.

Stack tecnologico

Il backend è realizzato utilizzando uno stack Node.js moderno.

Strato Tecnologia
Struttura NestJS 11
Lingua TypeScript 5.7
Banca dati MongoDB 8
ODM Mangusta 8
Autenticazione Passport.js + JWT
Validazione validatore di classe
Documentazione API Swagger OpenAPI
Sicurezza della password bcrypt
Generatore di lumache lumaca
Test Scherzo

Struttura del progetto

Il progetto segue un'architettura modulare.

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

I componenti importanti includono:

  • Validazione DTO

  • Schemi di mangusta

  • Filtri di eccezione globali

  • Intercettori di risposta

  • Guardie JWT

  • Decoratori di ruolo

Questa struttura mantiene la base di codice organizzata e scalabile.

Come installare ed eseguire il progetto

Prerequisiti

Prima di procedere all'installazione, assicurati di avere:

  • Node.js 18.17+

  • MongoDB 6+

  • npm, yarn o pnpm

Clona il repository

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

Installare le dipendenze

npm install

Configurare le variabili di ambiente

Copia il file di ambiente di esempio:

cp .env.example .env

Aggiornare i seguenti valori:

MONGODB_URI= 
JWT_ACCESS_SECRET= 
JWT_REFRESH_SECRET= 

Semina il database

Popolare il database con dati campione:

npm run seed

Per reimpostare e riseminare:

npm run seed:refresh

Avviare il server di sviluppo

npm run start:dev

URL di base dell'API:

http://localhost:3000/api/v1

Documentazione Swagger:

http://localhost:3000/api/docs

Dati predefiniti

Lo script seed genera dati campione per i test.

Entità Contare
Utenti 5
Categorie 5
Etichette 28
Messaggi 10
Commenti 6

Credenziali di accesso predefinite

Password per tutti gli utenti selezionati:

admin123

Conti:

Ruolo E-mail
Amministratore [email protected]
Autore [email protected]
Autore [email protected]
Autore [email protected]
Lettore [email protected]

Documentazione API Swagger

La documentazione API interattiva è disponibile all'indirizzo:

http://localhost:3000/api/docs

Swagger fornisce:

  • Test degli endpoint interattivi

  • JWT authenticationsupporto

  • Documentazione dello schema di richiesta e risposta

Perché utilizzare questo repository

L' API NestJS MongoDB Blog è un potente punto di partenza per gli sviluppatori che vogliono creare un moderno backend per blog.

I vantaggi includono:

  • Architettura modulare pulita di NestJS

  • Autenticazione integrata e RBAC

  • Documentazione API Swagger pronta all'uso

  • Integrazione MongoDB tramite Mongoose

  • Sistema di seeding del database

  • Struttura del progetto pronta per la produzione

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