Membangun backend blog yang skalabel membutuhkan arsitektur yang terstruktur dengan baik, sistem otentikasi, dan API yang terdokumentasi dengan benar. NestJS MongoDB Blog API adalah template backend siap produksi yang dirancang untuk membantu pengembang membangun platform blog modern dengan cepat menggunakan NestJS, MongoDB, JWT authenticationdan dokumentasi Swagger .
Proyek ini menyediakan API RESTful lengkap termasuk modul untuk pengguna, postingan, kategori, tag, komentar, otentikasi, dan kontrol akses berbasis peran .
Repositori: https://github.com/bfotool/nestjs-mongodb-blog-base
Apa itu NestJS MongoDB Blog API?
NestJS MongoDB Blog API adalah templat backend sumber terbuka yang dibangun dengan NestJS 11 dan MongoDB yang menyediakan API REST blog yang berfungsi penuh.
Ini dirancang untuk berfungsi sebagai dasar pembangunan:
Platform blog
Sistem CMS tanpa antarmuka pengguna(headless CMS)
API penerbitan konten
Situs web dokumentasi
Blog portofolio pengembang
Proyek ini mengikuti arsitektur modular yang direkomendasikan oleh NestJS, sehingga menjamin skalabilitas dan kemudahan pemeliharaan.
Repositori: https://github.com/bfotool/nestjs-mongodb-blog-base
Fitur Utama
Autentikasi dan Otorisasi
API ini menyertakan sistem otentikasi yang aman menggunakan token JWT.
Fitur otentikasi utama meliputi:
Token Akses dan Refresh JWT
Kontrol Akses Berbasis Peran(RBAC)
Hashing kata sandi dengan bcrypt
Rute API yang dilindungi menggunakan Guard.
Mekanisme penyegaran token
Tiga peran pengguna default didukung:
Admin
Pengarang
Pembaca
Hal ini memudahkan pengelolaan izin di berbagai titik akhir API.
Modul Blog Lengkap
Proyek ini mencakup beberapa modul yang telah diimplementasikan sepenuhnya dan mencakup semua fungsi inti blog.
Modul Otorisasi
Menangani otentikasi dan sesi pengguna.
Endpoint meliputi:
POST /auth/registerPOST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/profile
Modul Pengguna
Mengelola akun dan profil pengguna.
Titik akhir:
GET /usersGET /users/:idPATCH /users/:idDELETE /users/:id
Operasi penulisan memerlukan izin Admin .
Modul Posting
Modul posting mengelola konten blog.
Fitur-fiturnya meliputi:
Penomoran halaman
Penyaringan berdasarkan kategori, tag, atau penulis
Penyortiran
Pencarian teks lengkap
Postingan unggulan
Titik akhir:
GET /postsGET /posts/featuredGET /posts/:slugPOST /postsPATCH /posts/:idDELETE /posts/:id
Modul Kategori
Mengatur postingan blog ke dalam kategori.
Titik akhir:
GET /categoriesGET /categories/:slugPOST /categoriesPATCH /categories/:idDELETE /categories/:id
Modul Tag
Memungkinkan pemberian tag yang fleksibel untuk postingan blog.
Titik akhir:
GET /tagsGET /tags/:slugPOST /tagsPATCH /tags/:idDELETE /tags/:id
Modul Komentar
Mendukung utas komentar dan balasan bertingkat.
Titik akhir:
GET /comments/post/:postIdGET /comments/:id/repliesPOST /commentsPATCH /comments/:idDELETE /comments/:id
Kemampuan API
Penomoran halaman
Semua endpoint daftar mendukung paginasi.
Contoh:
GET /posts?page=1&limit=6
Penyaringan
Postingan dapat difilter berdasarkan kategori, tag, atau penulis.
Contoh:
GET /posts?category=web-development
Pencarian Teks Lengkap
Fungsi pencarian diimplementasikan pada postingan.
Contoh:
GET /posts?search=nestjs+mongodb
Penyortiran
Respons API dapat diurutkan berdasarkan berbagai kolom.
Contoh:
GET /posts?sortBy=createdAt&sortOrder=desc
Pembuatan Siput Otomatis
Saat membuat postingan, sistem secara otomatis menghasilkan slug yang ramah URL dari judul menggunakan slugify .
Contoh:
Building REST APIs with NestJS
→ building-rest-apis-with-nestjs
Perhitungan Waktu Membaca
API secara otomatis menghitung perkiraan waktu membaca berdasarkan panjang konten postingan.
Format Respons API yang Konsisten
Semua tanggapan mengikuti struktur standar:
{
"success": true,
"data": {},
"timestamp": "2026-01-01T10:00:00Z"
}
Ini meningkatkan integrasi frontend dan debugging.
Tumpukan Teknologi
Backend dibangun menggunakan tumpukan Node.js modern.
| Lapisan | Teknologi |
|---|---|
| Kerangka | NestJS 11 |
| Bahasa | TypeScript 5.7 |
| Basis data | MongoDB 8 |
| ODM | Mongoose 8 |
| Autentikasi | Passport.js + JWT |
| Validasi | validator kelas |
| Dokumentasi API | Swagger OpenAPI |
| Keamanan Kata Sandi | bcrypt |
| Generator Siput | menjadi siput |
| Pengujian | Bersenda gurau |
Struktur Proyek
Proyek ini mengikuti arsitektur modular.
src/
├── auth/
├── users/
├── posts/
├── categories/
├── tags/
├── comments/
├── common/
└── seed/
Komponen penting meliputi:
Validasi DTO
Skema Mongoose
Filter pengecualian global
Pencegat respons
Penjaga JWT
Dekorator peran
Struktur ini menjaga agar basis kode tetap terorganisir dan mudah diskalakan.
Cara Menginstal dan Menjalankan Proyek
Prasyarat
Sebelum memasang, pastikan Anda memiliki:
Node.js 18.17+
MongoDB 6+
npm, yarn, atau pnpm
Kloning Repositori
git clone https://github.com/bfotool/nestjs-mongodb-blog-base
cd nestjs-mongodb-blog-base
Instal Dependensi
npm install
Konfigurasi Variabel Lingkungan
Salin file lingkungan contoh berikut:
cp .env.example .env
Perbarui nilai-nilai berikut:
MONGODB_URI=
JWT_ACCESS_SECRET=
JWT_REFRESH_SECRET=
Isi Basis Data dengan Data Awal
Isi basis data dengan data sampel:
npm run seed
Untuk mengatur ulang dan menyemai ulang:
npm run seed:refresh
Mulai Server Pengembangan
npm run start:dev
URL dasar API:
http://localhost:3000/api/v1
Dokumentasi Swagger:
http://localhost:3000/api/docs
Data Bawaan Default
Skrip awal menghasilkan data sampel untuk pengujian.
| Kesatuan | Menghitung |
|---|---|
| Pengguna | 5 |
| Kategori | 5 |
| Tag | 28 |
| Postingan | 10 |
| Komentar | 6 |
Kredensial Login Default
Kata sandi untuk semua pengguna yang terdaftar:
admin123
Akun:
| Peran | |
|---|---|
| Admin | [email protected] |
| Pengarang | [email protected] |
| Pengarang | [email protected] |
| Pengarang | [email protected] |
| Pembaca | [email protected] |
Dokumentasi API Swagger
Dokumentasi API interaktif tersedia di:
http://localhost:3000/api/docs
Swagger menyediakan:
Pengujian titik akhir interaktif
JWT authenticationmendukung
Dokumentasi skema permintaan dan respons
Mengapa Menggunakan Repositori Ini?
NestJS MongoDB Blog API adalah titik awal yang ampuh bagi para pengembang yang membangun backend blog modern.
Keuntungannya meliputi:
Arsitektur modular NestJS yang bersih
Autentikasi dan RBAC bawaan
Dokumentasi API Swagger yang siap digunakan
Integrasi MongoDB menggunakan Mongoose
Sistem pengisian basis data
Struktur proyek siap produksi
Repositori: https://github.com/bfotool/nestjs-mongodb-blog-base



