Template API Blog NestJS MongoDB – Backend REST Berfitur Lengkap untuk Blog

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/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

Modul Pengguna

Mengelola akun dan profil pengguna.

Titik akhir:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /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 /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

Modul Kategori

Mengatur postingan blog ke dalam kategori.

Titik akhir:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

Modul Tag

Memungkinkan pemberian tag yang fleksibel untuk postingan blog.

Titik akhir:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

Modul Komentar

Mendukung utas komentar dan balasan bertingkat.

Titik akhir:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /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 E-mail
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