Ö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/registerPOST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/profile
Kullanıcılar Modülü
Kullanıcı hesaplarını ve profillerini yönetir.
Uç noktalar:
GET /usersGET /users/:idPATCH /users/:idDELETE /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 /postsGET /posts/featuredGET /posts/:slugPOST /postsPATCH /posts/:idDELETE /posts/:id
Kategoriler Modülü
Blog yazılarını kategorilere ayırır.
Uç noktalar:
GET /categoriesGET /categories/:slugPOST /categoriesPATCH /categories/:idDELETE /categories/:id
Etiketler Modülü
Blog yazıları için esnek etiketleme olanağı sağlar.
Uç noktalar:
GET /tagsGET /tags/:slugPOST /tagsPATCH /tags/:idDELETE /tags/:id
Yorumlar Modülü
Yorum dizilerini ve iç içe yanıtları destekler.
Uç noktalar:
GET /comments/post/:postIdGET /comments/:id/repliesPOST /commentsPATCH /comments/:idDELETE /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ı



