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/registerPOST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/profile
Moduł użytkowników
Zarządza kontami i profilami użytkowników.
Punkty końcowe:
GET /usersGET /users/:idPATCH /users/:idDELETE /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 /postsGET /posts/featuredGET /posts/:slugPOST /postsPATCH /posts/:idDELETE /posts/:id
Moduł kategorii
Organizuje wpisy na blogu według kategorii.
Punkty końcowe:
GET /categoriesGET /categories/:slugPOST /categoriesPATCH /categories/:idDELETE /categories/:id
Moduł tagów
Umożliwia elastyczne tagowanie wpisów na blogu.
Punkty końcowe:
GET /tagsGET /tags/:slugPOST /tagsPATCH /tags/:idDELETE /tags/:id
Moduł komentarzy
Obsługuje wątki komentarzy i zagnieżdżone odpowiedzi.
Punkty końcowe:
GET /comments/post/:postIdGET /comments/:id/repliesPOST /commentsPATCH /comments/:idDELETE /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 | |
|---|---|
| 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



