Kiolezo cha API cha Blogu ya NestJS MongoDB- Sehemu Kamili ya Nyuma Iliyoangaziwa ya REST kwa Blogu

Kujenga sehemu ya nyuma ya blogu inayoweza kupanuliwa kunahitaji usanifu uliopangwa vizuri, mfumo wa uthibitishaji, na API zilizoandikwa ipasavyo. API ya Blogu ya NestJS MongoDB ni kiolezo cha sehemu ya nyuma kilicho tayari kwa uzalishaji kilichoundwa ili kuwasaidia wasanidi programu kujenga haraka majukwaa ya kisasa ya blogu kwa kutumia nyaraka za NestJS, MongoDB, JWT authentication, na Swagger .

Mradi huu hutoa API kamili ya RESTful ikijumuisha moduli za watumiaji, machapisho, kategoria, lebo, maoni, uthibitishaji, na udhibiti wa ufikiaji unaotegemea majukumu .

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

API ya Blogu ya NestJS MongoDB ni nini?

API ya Blogu ya NestJS MongoDB ni kiolezo cha nyuma cha chanzo huria kilichojengwa kwa NestJS 11 na MongoDB ambacho hutoa API ya REST ya blogu inayofanya kazi kikamilifu.

Imeundwa kutumika kama msingi wa kujenga:

  • Mifumo ya blogu

  • Mifumo ya CMS isiyo na vichwa

  • API za uchapishaji wa maudhui

  • Tovuti za nyaraka

  • Blogu za kwingineko za wasanidi programu

Mradi huu unafuata usanifu wa moduli uliopendekezwa na NestJS, kuhakikisha upanukaji na uendelevu.

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

Vipengele Muhimu

Uthibitishaji na Uidhinishaji

API inajumuisha mfumo salama wa uthibitishaji unaotumia tokeni za JWT.

Vipengele vikuu vya uthibitishaji ni pamoja na:

  • Tokeni za Ufikiaji na Uboreshaji wa JWT

  • Udhibiti wa Ufikiaji Unaotegemea Majukumu(RBAC)

  • Kuweka nenosiri kwa kutumia bcrypt

  • Njia za API zilizolindwa kwa kutumia Walinzi

  • Utaratibu wa kuonyesha upya tokeni

Majukumu matatu chaguo-msingi ya mtumiaji yanaungwa mkono:

  • Msimamizi

  • Mwandishi

  • Msomaji

Hii hurahisisha kudhibiti ruhusa katika sehemu tofauti za mwisho za API.

Moduli Kamili za Blogu

Mradi huu unajumuisha moduli kadhaa zilizotekelezwa kikamilifu zinazoshughulikia utendaji kazi wote wa msingi wa blogu.

Moduli ya Uidhinishaji

Hushughulikia uthibitishaji na vipindi vya mtumiaji.

Sehemu za mwisho ni pamoja na:

  • POST /auth/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

Moduli ya Watumiaji

Hudhibiti akaunti na wasifu wa watumiaji.

Sehemu za mwisho:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /users/:id

Shughuli za kuandika zinahitaji ruhusa za Msimamizi .

Moduli ya Machapisho

Moduli ya machapisho hudhibiti maudhui ya blogu.

Vipengele ni pamoja na:

  • Upagani

  • Kuchuja kwa kategoria, lebo, au mwandishi

  • Kupanga

  • Utafutaji wa maandishi kamili

  • Machapisho yaliyoangaziwa

Sehemu za mwisho:

  • GET /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

Moduli ya Aina

Hupanga machapisho ya blogu katika kategoria.

Sehemu za mwisho:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

Moduli ya Lebo

Huruhusu utambulisho rahisi kwa machapisho ya blogu.

Sehemu za mwisho:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

Moduli ya Maoni

Inasaidia nyuzi za maoni na majibu yaliyopangwa.

Sehemu za mwisho:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /comments/:id

Uwezo wa API

Upagani

Sehemu zote za mwisho za orodha zinaunga mkono uundaji wa kurasa.

Mfano:

GET /posts?page=1&limit=6

Kuchuja

Machapisho yanaweza kuchujwa kwa kategoria, lebo, au mwandishi.

Mfano:

GET /posts?category=web-development

Utafutaji wa Maandishi Kamili

Utendaji wa utafutaji unatekelezwa kwenye machapisho.

Mfano:

GET /posts?search=nestjs+mongodb

Kupanga

Majibu ya API yanaweza kupangwa kwa sehemu tofauti.

Mfano:

GET /posts?sortBy=createdAt&sortOrder=desc

Uzalishaji wa Koa Kiotomatiki

Wakati wa kuunda machapisho, mfumo hutoa kiotomatiki slug inayofaa URL kutoka kwa kichwa kwa kutumia slugify .

Mfano:

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

Hesabu ya Muda wa Kusoma

API huhesabu kiotomatiki muda uliokadiriwa wa kusoma kulingana na urefu wa maudhui ya machapisho.

Muundo wa Majibu ya API Sambamba

Majibu yote yanafuata muundo wa kawaida:

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

Hii inaboresha ujumuishaji na utatuzi wa umbizo la mbele.

Mrundiko wa Teknolojia

Sehemu ya nyuma imejengwa kwa kutumia rafu ya kisasa ya Node.js.

Safu Teknolojia
Mfumo NestJS 11
Lugha Hati ya Aina 5.7
Hifadhidata MongoDB 8
ODM Mongoose 8
Uthibitishaji Passport.js + JWT
Uthibitisho kithibitishaji cha darasa
Nyaraka za API Swagger OpenAPI
Usalama wa Nenosiri bcrypt
Jenereta ya Konokono slugify
Upimaji Mzaha

Muundo wa Mradi

Mradi huu unafuata usanifu wa moduli.

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

Vipengele muhimu ni pamoja na:

  • Uthibitisho wa DTO

  • Michoro ya mongoose

  • Vichujio vya kimataifa vya ubaguzi

  • Vizuia majibu

  • Walinzi wa JWT

  • Wapambaji wa majukumu

Muundo huu huweka msingi wa msimbo ukiwa umepangwa na kuweza kupanuliwa.

Jinsi ya Kusakinisha na Kuendesha Mradi

Masharti ya awali

Kabla ya kusakinisha, hakikisha una:

  • Node.js 18.17+

  • MongoDB 6+

  • npm, uzi, au pnpm

Clone Hifadhi

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

Utegemezi wa Usakinishaji

npm install

Sanidi Vigezo vya Mazingira

Nakili faili ya mfano wa mazingira:

cp .env.example .env

Sasisha thamani zifuatazo:

MONGODB_URI= 
JWT_ACCESS_SECRET= 
JWT_REFRESH_SECRET= 

Mbegu Hifadhidata

Jaza hifadhidata na data ya sampuli:

npm run seed

Ili kuweka upya na kupanda mbegu upya:

npm run seed:refresh

Anzisha Seva ya Usanidi

npm run start:dev

URL ya msingi wa API:

http://localhost:3000/api/v1

Nyaraka za Swagger:

http://localhost:3000/api/docs

Data Chaguo-Msingi Iliyopandwa

Hati ya mbegu hutoa data ya sampuli kwa ajili ya majaribio.

Huluki Hesabu
Watumiaji 5
Aina 5
Lebo 28
Machapisho 10
Maoni 6

Kitambulisho Chaguo-Msingi cha Kuingia

Nenosiri kwa watumiaji wote waliopewa mbegu:

admin123

Akaunti:

Jukumu Barua pepe
Msimamizi [email protected]
Mwandishi [email protected]
Mwandishi [email protected]
Mwandishi [email protected]
Msomaji [email protected]

Nyaraka za API ya Swagger

Nyaraka shirikishi za API zinapatikana katika:

http://localhost:3000/api/docs

Swagger hutoa:

  • Jaribio shirikishi la sehemu ya mwisho

  • JWT authenticationusaidizi

  • Nyaraka za mpango wa ombi na majibu

Kwa Nini Utumie Hifadhi Hii

API ya Blogu ya NestJS MongoDB ni sehemu muhimu ya kuanzia kwa watengenezaji wa programu wanaounda sehemu ya nyuma ya blogu ya kisasa.

Faida ni pamoja na:

  • Safisha usanifu wa moduli wa NestJS

  • Uthibitishaji uliojengewa ndani na RBAC

  • Nyaraka za API ya Swagger zilizo tayari kutumika

  • Muunganisho wa MongoDB kwa kutumia Mongoose

  • Mfumo wa upandaji wa hifadhidata

  • Muundo wa mradi ulio tayari kwa uzalishaji

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