Cithakan API Blog NestJS MongoDB – Backend REST Fitur Lengkap kanggo Blog

Mbangun backend blog sing bisa diskalakake mbutuhake arsitektur sing terstruktur kanthi apik, sistem otentikasi, lan API sing didokumentasikake kanthi bener. NestJS MongoDB Blog API minangka cithakan backend sing siap produksi sing dirancang kanggo mbantu para pangembang kanthi cepet mbangun platform blog modern nggunakake dokumentasi NestJS, MongoDB, JWT authenticationlan Swagger .

Proyèk iki nyedhiyakaké RESTful API lengkap kalebu modul kanggo panganggo, kiriman, kategori, tag, komentar, otentikasi, lan kontrol akses berbasis peran .

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

Apa kuwi NestJS MongoDB Blog API?

NestJS MongoDB Blog API kuwi cithakan backend sumber terbuka sing digawe nganggo NestJS 11 lan MongoDB sing nyedhiyakake REST API blog sing berfungsi kanthi lengkap.

Iki dirancang kanggo dadi pondasi kanggo mbangun:

  • Platform blog

  • Sistem CMS tanpa sirah

  • API penerbitan konten

  • Situs web dokumentasi

  • Blog portofolio pangembang

Proyèk iki nderek arsitektur modular sing direkomendasikaké déning NestJS, kanggo njamin skalabilitas lan perawatan.

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

Fitur Utama

Otentikasi lan Otorisasi

API iki kalebu sistem otentikasi sing aman nggunakake token JWT.

Fitur otentikasi utama kalebu:

  • Token Akses lan Refresh JWT

  • Kontrol Akses Berbasis Peran(RBAC)

  • Hashing sandhi nganggo bcrypt

  • Rute API sing dilindhungi nggunakake Guards

  • Mekanisme penyegaran token

Ana telung peran panganggo standar sing didhukung:

  • Admin

  • Penulis

  • Pamaca

Iki nggampangake ngatur ijin ing macem-macem endpoint API.

Modul Blog Lengkap

Proyèk iki kalebu sawetara modul sing wis diimplementasikake kanthi lengkap sing nyakup kabeh fungsi inti blog.

Modul Otorisasi

Nangani otentikasi lan sesi panganggo.

Titik pungkasan kalebu:

  • POST /auth/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

Modul Panganggo

Ngatur akun lan profil panganggo.

Titik pungkasan:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /users/:id

Operasi nulis mbutuhake ijin Admin .

Modul Posting

Modul postingan ngatur isi blog.

Fitur-fitur kasebut kalebu:

  • Paginasi

  • Nyaring miturut kategori, tag, utawa panganggit

  • Ngurutake

  • Panelusuran teks lengkap

  • Kiriman unggulan

Titik pungkasan:

  • GET /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

Modul Kategori

Ngatur postingan blog menyang kategori.

Titik pungkasan:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

Modul Tag

Ngidini menehi tag fleksibel kanggo postingan blog.

Titik pungkasan:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

Modul Komentar

Ndhukung utas komentar lan balesan sing disarangkan.

Titik pungkasan:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /comments/:id

Kapabilitas API

Paginasi

Kabeh titik pungkasan dhaptar ndhukung pagination.

Tuladha:

GET /posts?page=1&limit=6

Nyaring

Kiriman bisa difilter miturut kategori, tag, utawa penulis.

Tuladha:

GET /posts?category=web-development

Panelusuran Teks Lengkap

Fungsi telusuran diterapake ing kiriman.

Tuladha:

GET /posts?search=nestjs+mongodb

Ngurutake

Tanggepan API bisa diurutake miturut kolom sing beda-beda.

Tuladha:

GET /posts?sortBy=createdAt&sortOrder=desc

Generasi Slug Otomatis

Nalika nggawe postingan, sistem bakal kanthi otomatis ngasilake slug sing ramah URL saka judhul nggunakake slugify .

Tuladha:

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

Pitungan Wektu Maca

API kasebut kanthi otomatis ngetung perkiraan wektu maca adhedhasar dawane konten kiriman.

Format Respon API sing Konsisten

Kabeh respon ngetutake struktur standar:

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

Iki nambah integrasi frontend lan debugging.

Tumpukan Teknologi

Backend iki digawe nggunakake tumpukan Node.js modern.

Lapisan Teknologi
Kerangka NestJS 11
Basa TypeScript 5.7
Basis data MongoDB 8
ODM Luwak 8
Otentikasi Passport.js + JWT
Validasi validator kelas
Dokumentasi API OpenAPI Swagger
Keamanan Sandi bcrypt
Generator Slug nggawe slug
Tes Guyon

Struktur Proyek

Proyèk iki ngetutaké arsitèktur modular.

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

Komponen penting kalebu:

  • Validasi DTO

  • Skema luwak

  • Filter pengecualian global

  • Pencegat respon

  • Pengawal JWT

  • Para penghias peran

Struktur iki njaga basis kode supaya tetep teratur lan bisa diskalakake.

Cara Nginstal lan Mlaku Proyek

Prasyarat

Sadurunge nginstal, priksa manawa sampeyan duwe:

  • Node.js 18.17+

  • MongoDB 6+

  • npm, benang, utawa pnpm

Kloning Repositori

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

Ketergantungan Instalasi

npm install

Konfigurasi Variabel Lingkungan

Salin file lingkungan conto:

cp .env.example .env

Anyari nilai-nilai ing ngisor iki:

MONGODB_URI= 
JWT_ACCESS_SECRET= 
JWT_REFRESH_SECRET= 

Nyiptakake Database

Isi database nganggo data conto:

npm run seed

Kanggo ngreset lan reseed:

npm run seed:refresh

Miwiti Server Pangembangan

npm run start:dev

URL dhasar API:

http://localhost:3000/api/v1

Dokumentasi Swagger:

http://localhost:3000/api/docs

Data Seeded Baku

Skrip seed ngasilake data sampel kanggo pengujian.

Entitas Cacah
Panganggo 5
Kategori 5
Tag 28
Posting 10
Komentar 6

Kredensial Login Baku

Sandi kanggo kabeh panganggo sing wis diunggulake:

admin123

Akun:

Peran Email
Admin [email protected]
Penulis [email protected]
Penulis [email protected]
Penulis [email protected]
Pamaca [email protected]

Dokumentasi API Swagger

Dokumentasi API interaktif kasedhiya ing:

http://localhost:3000/api/docs

Swagger nyedhiyakake:

  • Pengujian titik pungkasan interaktif

  • JWT authenticationdhukungan

  • Dokumentasi skema panjalukan lan tanggapan

Apa Sebab Nggunakake Repositori Iki

NestJS MongoDB Blog API minangka titik wiwitan sing kuat kanggo para pangembang sing mbangun backend blog modern.

Kauntungane kalebu:

  • Arsitektur modular NestJS sing resik

  • Otentikasi lan RBAC bawaan

  • Dokumentasi API Swagger sing wis siap digunakake

  • Integrasi MongoDB nggunakake Mongoose

  • Sistem penyemaian basis data

  • Struktur proyek sing siap produksi

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