NestJS MongoDB Blog API Şablonu – Bloglar için Tam Özellikli REST Arka Uç

Ölçeklenebilir bir blog arka ucu oluşturmak, iyi yapılandırılmış bir mimari, kimlik doğrulama sistemi ve düzgün bir şekilde belgelenmiş API'ler gerektirir. NestJS MongoDB Blog API, geliştiricilerin NestJS, MongoDB JWT authenticationve Swagger dokümantasyonunu kullanarak modern blog platformlarını hızlı bir şekilde oluşturmalarına yardımcı olmak için tasarlanmış, üretime hazır bir arka uç şablonudur .

Bu proje, kullanıcılar, gönderiler, kategoriler, etiketler, yorumlar, kimlik doğrulama ve rol tabanlı erişim kontrolü için modüller de dahil olmak üzere eksiksiz bir RESTful API sunmaktadır .

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

NestJS MongoDB Blog API nedir?

NestJS MongoDB Blog API, NestJS 11 ve MongoDB ile oluşturulmuş, tamamen işlevsel bir blog REST API'si sağlayan açık kaynaklı bir arka uç şablonudur .

Bu yapı, aşağıdakilerin inşası için temel oluşturmak üzere tasarlanmıştır:

  • Blog platformları

  • Başsız CMS sistemleri

  • İçerik yayınlama API'leri

  • Dokümantasyon web siteleri

  • Geliştirici portföyü blogları

Proje, NestJS tarafından önerilen modüler mimariyi takip ederek ölçeklenebilirlik ve sürdürülebilirlik sağlıyor.

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

Başlıca Özellikler

Kimlik Doğrulama ve Yetkilendirme

API, JWT belirteçleri kullanan güvenli bir kimlik doğrulama sistemi içerir.

Başlıca kimlik doğrulama özellikleri şunlardır:

  • JWT Erişim ve Yenileme Token'ları

  • Rol Tabanlı Erişim Kontrolü(RBAC)

  • bcrypt ile parola karma işlemi

  • Guard'lar kullanılarak korunan API rotaları

  • Token yenileme mekanizması

Üç varsayılan kullanıcı rolü desteklenmektedir:

  • Yönetici

  • Yazar

  • Okuyucu

Bu, farklı API uç noktalarındaki izinleri yönetmeyi kolaylaştırır.

Tam Blog Modülleri

Proje, blogun tüm temel işlevlerini kapsayan, tamamen uygulanmış çeşitli modüller içermektedir.

Kimlik Doğrulama Modülü

Kimlik doğrulama ve kullanıcı oturumlarını yönetir.

Uç noktalar şunlardır:

  • POST /auth/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

Kullanıcılar Modülü

Kullanıcı hesaplarını ve profillerini yönetir.

Uç noktalar:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /users/:id

Yazma işlemleri için yönetici izinleri gereklidir .

Gönderiler Modülü

Gönderiler modülü blog içeriğini yönetir.

Özellikler şunları içerir:

  • Sayfalama

  • Kategoriye, etikete veya yazara göre filtreleme

  • Sıralama

  • Tam metin araması

  • Öne çıkan gönderiler

Uç noktalar:

  • GET /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

Kategoriler Modülü

Blog yazılarını kategorilere ayırır.

Uç noktalar:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

Etiketler Modülü

Blog yazıları için esnek etiketleme olanağı sağlar.

Uç noktalar:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

Yorumlar Modülü

Yorum dizilerini ve iç içe yanıtları destekler.

Uç noktalar:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /comments/:id

API Yetenekleri

Sayfalama

Tüm liste uç noktaları sayfalama özelliğini destekler.

Örnek:

GET /posts?page=1&limit=6

Filtreleme

Gönderiler kategoriye, etikete veya yazara göre filtrelenebilir.

Örnek:

GET /posts?category=web-development

Tam Metin Arama

Gönderilerde arama işlevi uygulanmıştır.

Örnek:

GET /posts?search=nestjs+mongodb

Sıralama

API yanıtları farklı alanlara göre sıralanabilir.

Örnek:

GET /posts?sortBy=createdAt&sortOrder=desc

Otomatik Salyangoz Üretimi

Gönderiler oluşturulurken, sistem slugify kullanarak başlıktan otomatik olarak URL'ye uygun bir slug oluşturur .

Örnek:

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

Okuma Süresi Hesaplaması

API, gönderilerin içerik uzunluğuna bağlı olarak tahmini okuma süresini otomatik olarak hesaplar.

Tutarlı API Yanıt Biçimi

Tüm yanıtlar standart bir yapıya sahiptir:

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

Bu, ön uç entegrasyonunu ve hata ayıklamayı iyileştirir.

Teknoloji Yığını

Arka uç, modern bir Node.js yığını kullanılarak oluşturulmuştur.

Katman Teknoloji
Çerçeve NestJS 11
Dil TypeScript 5.7
Veritabanı MongoDB 8
ODM Mongoose 8
Kimlik doğrulama Passport.js + JWT
Doğrulama sınıf-doğrulayıcı
API Dokümantasyonu Swagger OpenAPI
Parola Güvenliği bcrypt
Salyangoz Jeneratörü salyangozlaştırmak
Test Alay

Proje Yapısı

Proje modüler bir mimariye dayanmaktadır.

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

Önemli bileşenler şunlardır:

  • DTO doğrulaması

  • Mongoose şemaları

  • Küresel istisna filtreleri

  • Yanıt engelleyiciler

  • JWT muhafızları

  • Rol dekoratörleri

Bu yapı, kod tabanının düzenli ve ölçeklenebilir kalmasını sağlar.

Proje Nasıl Kurulur ve Çalıştırılır

Önkoşullar

Kurulumdan önce şunlara sahip olduğunuzdan emin olun:

  • Node.js 18.17+

  • MongoDB 6+

  • npm, yarn veya pnpm

Depoyu Klonla

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

Bağımlılıkları Yükle

npm install

Ortam Değişkenlerini Yapılandır

Örnek ortam dosyasını kopyalayın:

cp .env.example .env

Aşağıdaki değerleri güncelleyin:

MONGODB_URI= 
JWT_ACCESS_SECRET= 
JWT_REFRESH_SECRET= 

Veritabanını Başlat

Veritabanını örnek verilerle doldurun:

npm run seed

Sıfırlamak ve yeniden başlatmak için:

npm run seed:refresh

Geliştirme Sunucusunu Başlatın

npm run start:dev

API temel URL'si:

http://localhost:3000/api/v1

Swagger dokümantasyonu:

http://localhost:3000/api/docs

Varsayılan Başlangıç ​​Verileri

Bu başlangıç ​​komut dosyası, test için örnek veri üretir.

Varlık Saymak
Kullanıcılar 5
Kategoriler 5
Etiketler 28
Gönderiler 10
Yorumlar 6

Varsayılan Giriş Kimlik Bilgileri

Tüm kullanıcıların şifresi:

admin123

Hesaplar:

Rol E-posta
Yönetici [email protected]
Yazar [email protected]
Yazar [email protected]
Yazar [email protected]
Okuyucu [email protected]

Swagger API Dokümantasyonu

Etkileşimli API dokümantasyonuna şu adresten ulaşabilirsiniz:

http://localhost:3000/api/docs

Swagger şunları sağlar:

  • Etkileşimli uç nokta testi

  • JWT authenticationDestek

  • İstek ve yanıt şeması dokümantasyonu

Bu Depoyu Neden Kullanmalısınız?

NestJS MongoDB Blog API, modern bir blog arka ucu geliştiren geliştiriciler için güçlü bir başlangıç ​​noktasıdır.

Avantajları şunlardır:

  • Temiz NestJS modüler mimarisi

  • Dahili kimlik doğrulama ve RBAC

  • Kullanıma hazır Swagger API dokümantasyonu

  • Mongoose kullanarak MongoDB entegrasyonu

  • Veritabanı tohumlama sistemi

  • Üretime hazır proje yapısı

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