Templat API Blog NestJS MongoDB – Bahagian Belakang REST Ciri Penuh untuk Blog

Membina bahagian belakang blog yang boleh diskala memerlukan seni bina yang berstruktur dengan baik, sistem pengesahan dan API yang didokumenkan dengan betul. API Blog MongoDB NestJS ialah templat bahagian belakang sedia pengeluaran yang direka untuk membantu pembangun membina platform blog moden dengan cepat menggunakan dokumentasi NestJS, MongoDB JWT authenticationdan Swagger .

Projek ini menyediakan API RESTful yang lengkap termasuk modul untuk pengguna, siaran, kategori, tag, komen, pengesahan dan kawalan akses berasaskan peranan .

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

Apakah API Blog NestJS MongoDB

API Blog NestJS MongoDB ialah templat backend sumber terbuka yang dibina dengan NestJS 11 dan MongoDB yang menyediakan API REST blog yang berfungsi sepenuhnya.

Ia direka bentuk untuk berfungsi sebagai asas bagi pembinaan:

  • Platform blog

  • Sistem CMS tanpa kepala

  • API penerbitan kandungan

  • Laman web dokumentasi

  • Blog portfolio pembangun

Projek ini mengikuti seni bina modular yang disyorkan oleh NestJS, memastikan kebolehskalaan dan kebolehpeliharaan.

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

Ciri-ciri Utama

Pengesahan dan Kebenaran

API ini merangkumi sistem pengesahan selamat menggunakan token JWT.

Ciri-ciri pengesahan utama termasuk:

  • Token Akses dan Segar Semula JWT

  • Kawalan Akses Berasaskan Peranan(RBAC)

  • Penghash kata laluan dengan bcrypt

  • Laluan API yang dilindungi menggunakan Pengawal

  • Mekanisme penyegaran token

Tiga peranan pengguna lalai disokong:

  • Pentadbir

  • Pengarang

  • Pembaca

Ini memudahkan untuk mengurus kebenaran merentasi titik akhir API yang berbeza.

Modul Blog Penuh

Projek ini merangkumi beberapa modul yang dilaksanakan sepenuhnya yang merangkumi semua fungsi teras blog.

Modul Pengesahan

Mengendalikan pengesahan dan sesi pengguna.

Titik akhir termasuk:

  • POST /auth/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

Modul Pengguna

Mengurus akaun dan profil pengguna.

Titik akhir:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /users/:id

Operasi penulisan memerlukan kebenaran Admin .

Modul Catatan

Modul catatan mengurus kandungan blog.

Ciri-ciri termasuk:

  • Penomboran halaman

  • Menapis mengikut kategori, tag atau pengarang

  • Mengisih

  • Carian teks penuh

  • Siaran pilihan

Titik akhir:

  • GET /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

Modul Kategori

Menyusun catatan blog mengikut kategori.

Titik akhir:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

Modul Tag

Membenarkan penandaan fleksibel untuk catatan blog.

Titik akhir:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

Modul Komen

Menyokong thread komen dan balasan bersarang.

Titik akhir:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /comments/:id

Keupayaan API

Penomboran halaman

Semua titik akhir senarai menyokong penomboran halaman.

Contoh:

GET /posts?page=1&limit=6

Penapisan

Siaran boleh ditapis mengikut kategori, tag atau pengarang.

Contoh:

GET /posts?category=web-development

Carian Teks Penuh

Fungsi carian dilaksanakan pada siaran.

Contoh:

GET /posts?search=nestjs+mongodb

Mengisih

Respons API boleh disusun mengikut medan yang berbeza.

Contoh:

GET /posts?sortBy=createdAt&sortOrder=desc

Penjanaan Slug Automatik

Semasa membuat catatan, sistem akan menjana slug mesra URL daripada tajuk secara automatik menggunakan slugify .

Contoh:

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

Pengiraan Masa Membaca

API secara automatik mengira anggaran masa membaca berdasarkan panjang kandungan siaran.

Format Respons API yang Konsisten

Semua respons mengikut struktur standard:

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

Ini meningkatkan integrasi dan penyahpepijatan bahagian hadapan.

Tumpukan Teknologi

Bahagian belakang dibina menggunakan tindanan Node.js moden.

Lapisan Teknologi
Kerangka Kerja NestJS 11
Bahasa TypeScript 5.7
Pangkalan Data MongoDB 8
ODM Luwak 8
Pengesahan Pasport.js + JWT
Pengesahan pengesah kelas
Dokumentasi API Swagger OpenAPI
Keselamatan Kata Laluan bcrypt
Penjana Slug slugify
Pengujian Bergurau

Struktur Projek

Projek ini mengikuti seni bina modular.

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

Komponen penting termasuk:

  • Pengesahan DTO

  • Skema Mongoose

  • Penapis pengecualian global

  • Pemintas tindak balas

  • Pengawal JWT

  • Penghias peranan

Struktur ini memastikan pangkalan kod teratur dan boleh diskalakan.

Cara Memasang dan Menjalankan Projek

Prasyarat

Sebelum memasang, pastikan anda mempunyai:

  • Node.js 18.17+

  • MongoDB 6+

  • npm, benang atau pnpm

Klon Repositori

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

Kebergantungan Pemasangan

npm install

Konfigurasikan Pembolehubah Persekitaran

Salin fail persekitaran contoh:

cp .env.example .env

Kemas kini nilai berikut:

MONGODB_URI= 
JWT_ACCESS_SECRET= 
JWT_REFRESH_SECRET= 

Semai Pangkalan Data

Isi pangkalan data dengan data sampel:

npm run seed

Untuk menetapkan semula dan menanam semula:

npm run seed:refresh

Mulakan Pelayan Pembangunan

npm run start:dev

URL asas API:

http://localhost:3000/api/v1

Dokumentasi Swagger:

http://localhost:3000/api/docs

Data Seeded Lalai

Skrip benih menjana data sampel untuk ujian.

Entiti Kiraan
Pengguna 5
Kategori 5
Tag 28
Siaran 10
Komen 6

Kelayakan Log Masuk Lalai

Kata laluan untuk semua pengguna yang telah di-seed:

admin123

Akaun:

Peranan E-mel
Pentadbir [email protected]
Pengarang [email protected]
Pengarang [email protected]
Pengarang [email protected]
Pembaca [email protected]

Dokumentasi API Swagger

Dokumentasi API interaktif boleh didapati di:

http://localhost:3000/api/docs

Swagger menyediakan:

  • Pengujian titik akhir interaktif

  • JWT authenticationsokongan

  • Dokumentasi skema permintaan dan respons

Mengapa Menggunakan Repositori Ini

API Blog NestJS MongoDB ialah titik permulaan yang ampuh untuk pembangun membina bahagian belakang blog moden.

Kelebihannya termasuk:

  • Seni bina modular NestJS yang bersih

  • Pengesahan terbina dalam dan RBAC

  • Dokumentasi API Swagger yang sedia untuk digunakan

  • Integrasi MongoDB menggunakan Mongoose

  • Sistem pembenihan pangkalan data

  • Struktur projek sedia untuk pengeluaran

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