Szablon API bloga NestJS MongoDB – w pełni funkcjonalny back-end REST dla blogów

Zbudowanie skalowalnego zaplecza bloga wymaga dobrze ustrukturyzowanej architektury, systemu uwierzytelniania i odpowiednio udokumentowanych interfejsów API. NestJS MongoDB Blog API to gotowy do produkcji szablon zaplecza, zaprojektowany, aby pomóc programistom szybko budować nowoczesne platformy blogowe z wykorzystaniem dokumentacji NestJS, MongoDB JWT authenticationi Swagger .

Ten projekt zapewnia kompletne API RESTful, obejmujące moduły dla użytkowników, wpisów, kategorii, tagów, komentarzy, uwierzytelniania i kontroli dostępu opartej na rolach .

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

Czym jest NestJS MongoDB Blog API

NestJS MongoDB Blog API to szablon zaplecza typu open source zbudowany z wykorzystaniem NestJS 11 i MongoDB, który zapewnia w pełni funkcjonalny interfejs API REST dla bloga.

Ma on służyć jako fundament pod budowę:

  • Platformy blogowe

  • Systemy CMS bez interfejsu użytkownika

  • Interfejsy API do publikowania treści

  • Strony internetowe z dokumentacją

  • Blogi portfolio programistów

Projekt został opracowany w oparciu o modułową architekturę zalecaną przez NestJS, co zapewnia skalowalność i łatwość utrzymania.

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

Główne cechy

Uwierzytelnianie i autoryzacja

API obejmuje bezpieczny system uwierzytelniania wykorzystujący tokeny JWT.

Główne funkcje uwierzytelniania obejmują:

  • Tokeny dostępu i odświeżania JWT

  • Kontrola dostępu oparta na rolach(RBAC)

  • Hashowanie hasła za pomocą bcrypt

  • Chronione trasy API z wykorzystaniem Guards

  • Mechanizm odświeżania tokenów

Obsługiwane są trzy domyślne role użytkownika:

  • Administrator

  • Autor

  • Czytelnik

Ułatwia to zarządzanie uprawnieniami w różnych punktach końcowych interfejsu API.

Pełne moduły bloga

Projekt obejmuje kilka w pełni zaimplementowanych modułów, które obejmują wszystkie podstawowe funkcjonalności bloga.

Moduł autoryzacji

Zajmuje się uwierzytelnianiem i sesjami użytkowników.

Punkty końcowe obejmują:

  • POST /auth/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

Moduł użytkowników

Zarządza kontami i profilami użytkowników.

Punkty końcowe:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /users/:id

Operacje zapisu wymagają uprawnień administratora .

Moduł Postów

Moduł postów służy do zarządzania treścią bloga.

Funkcje obejmują:

  • Paginacja

  • Filtrowanie według kategorii, tagu lub autora

  • Sortowanie

  • Wyszukiwanie pełnotekstowe

  • Polecane posty

Punkty końcowe:

  • GET /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

Moduł kategorii

Organizuje wpisy na blogu według kategorii.

Punkty końcowe:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

Moduł tagów

Umożliwia elastyczne tagowanie wpisów na blogu.

Punkty końcowe:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

Moduł komentarzy

Obsługuje wątki komentarzy i zagnieżdżone odpowiedzi.

Punkty końcowe:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /comments/:id

Możliwości API

Paginacja

Wszystkie punkty końcowe listy obsługują paginację.

Przykład:

GET /posts?page=1&limit=6

Filtracja

Posty można filtrować według kategorii, tagu lub autora.

Przykład:

GET /posts?category=web-development

Wyszukiwanie pełnotekstowe

Funkcja wyszukiwania jest zaimplementowana we wpisach.

Przykład:

GET /posts?search=nestjs+mongodb

Sortowanie

Odpowiedzi API można sortować według różnych pól.

Przykład:

GET /posts?sortBy=createdAt&sortOrder=desc

Automatyczne generowanie ślimaków

Podczas tworzenia postów system automatycznie generuje przyjazny dla adresu URL ślimak z tytułu za pomocą funkcji slugify .

Przykład:

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

Obliczanie czasu czytania

Interfejs API automatycznie oblicza szacowany czas czytania na podstawie długości treści postów.

Spójny format odpowiedzi API

Wszystkie odpowiedzi mają następującą, standardową strukturę:

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

Poprawia to integrację front-endu i debugowanie.

Stos technologiczny

Zaplecze zbudowano przy użyciu nowoczesnego stosu Node.js.

Warstwa Technologia
Struktura NestJS 11
Język TypeScript 5.7
Baza danych MongoDB 8
ODM Mangusta 8
Uwierzytelnianie Passport.js + JWT
Walidacja walidator klasy
Dokumentacja API Swagger OpenAPI
Bezpieczeństwo hasła bcrypt
Generator ślimaków ospały
Testowanie Żart

Struktura projektu

Projekt opiera się na architekturze modułowej.

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

Ważnymi elementami są:

  • Walidacja DTO

  • Schematy mangusty

  • Globalne filtry wyjątków

  • Przechwytywacze odpowiedzi

  • Strażnicy JWT

  • Dekoratorzy ról

Taka struktura pozwala zachować porządek i skalowalność bazy kodu.

Jak zainstalować i uruchomić projekt

Wymagania wstępne

Przed instalacją upewnij się, że masz:

  • Node.js 18.17+

  • MongoDB 6+

  • npm, yarn lub pnpm

Klonuj repozytorium

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

Zainstaluj zależności

npm install

Konfiguruj zmienne środowiskowe

Skopiuj przykładowy plik środowiska:

cp .env.example .env

Zaktualizuj następujące wartości:

MONGODB_URI= 
JWT_ACCESS_SECRET= 
JWT_REFRESH_SECRET= 

Zasiej bazę danych

Wypełnij bazę danych przykładowymi danymi:

npm run seed

Aby zresetować i ponownie zasiać:

npm run seed:refresh

Uruchom serwer programistyczny

npm run start:dev

Podstawowy adres URL API:

http://localhost:3000/api/v1

Dokumentacja Swaggera:

http://localhost:3000/api/docs

Domyślne dane zaszczepione

Skrypt źródłowy generuje przykładowe dane do testowania.

Podmiot Liczyć
Użytkownicy 5
Kategorie 5
Tagi 28
Posty 10
Uwagi 6

Domyślne dane logowania

Hasło dla wszystkich zaszczepionych użytkowników:

admin123

Konta:

Rola E-mail
Administrator [email protected]
Autor [email protected]
Autor [email protected]
Autor [email protected]
Czytelnik [email protected]

Dokumentacja API Swagger

Interaktywna dokumentacja API jest dostępna pod adresem:

http://localhost:3000/api/docs

Swagger zapewnia:

  • Interaktywne testowanie punktów końcowych

  • JWT authenticationwsparcie

  • Dokumentacja schematu żądań i odpowiedzi

Dlaczego warto korzystać z tego repozytorium

Interfejs API bloga NestJS MongoDB stanowi solidny punkt wyjścia dla programistów tworzących nowoczesne zaplecze bloga.

Zalety obejmują:

  • Czysta modułowa architektura NestJS

  • Wbudowane uwierzytelnianie i RBAC

  • Gotowa do użycia dokumentacja interfejsu API Swagger

  • Integracja MongoDB przy użyciu Mongoose

  • System rozsiewania bazy danych

  • Struktura projektu gotowa do produkcji

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