NestJS MongoDB ბლოგის API შაბლონი – ბლოგებისთვის REST-ის სრული ფუნქციების მქონე ბექენდი

მასშტაბირებადი ბლოგის ბექენდის შექმნას სჭირდება კარგად სტრუქტურირებული არქიტექტურა, ავთენტიფიკაციის სისტემა და სათანადოდ დოკუმენტირებული API-ები. NestJS MongoDB Blog API არის წარმოებისთვის მზა ბექენდის შაბლონი, რომელიც შექმნილია იმისთვის, რომ დაეხმაროს დეველოპერებს NestJS, MongoDB JWT authenticationდა Swagger დოკუმენტაციის გამოყენებით თანამედროვე ბლოგ პლატფორმების სწრაფად შექმნაში .

ეს პროექტი უზრუნველყოფს სრულ RESTful API-ს, მათ შორის მოდულებს მომხმარებლებისთვის, პოსტებისთვის, კატეგორიებისთვის, თეგებისთვის, კომენტარებისთვის, ავთენტიფიკაციისთვის და როლებზე დაფუძნებული წვდომის კონტროლისთვის .

საცავი: https://github.com/bfotool/nestjs-mongodb-blog-base

რა არის NestJS MongoDB ბლოგის API?

NestJS MongoDB ბლოგის API არის ღია კოდის ბექენდ შაბლონი, რომელიც შექმნილია NestJS 11-ისა და MongoDB-ის გამოყენებით და უზრუნველყოფს სრულად ფუნქციონალურ ბლოგის REST API-ს.

იგი განკუთვნილია მშენებლობისთვის საფუძვლის შესაქმნელად:

  • ბლოგის პლატფორმები

  • უსათაურო CMS სისტემები

  • კონტენტის გამოქვეყნების API-ები

  • დოკუმენტაციის ვებსაიტები

  • დეველოპერების პორტფოლიოს ბლოგები

პროექტი მიჰყვება NestJS-ის მიერ რეკომენდებულ მოდულარულ არქიტექტურას, რაც უზრუნველყოფს მასშტაბირებას და შენარჩუნებას.

საცავი: https://github.com/bfotool/nestjs-mongodb-blog-base

ძირითადი მახასიათებლები

ავთენტიფიკაცია და ავტორიზაცია

API მოიცავს უსაფრთხო ავტორიზაციის სისტემას JWT ტოკენების გამოყენებით.

ავთენტიფიკაციის ძირითადი მახასიათებლები მოიცავს:

  • JWT წვდომისა და განახლების ტოკენები

  • როლზე დაფუძნებული წვდომის კონტროლი(RBAC)

  • პაროლის ჰეშირება bcrypt-ით

  • დაცული API მარშრუტები Guards-ის გამოყენებით

  • ტოკენის განახლების მექანიზმი

მხარდაჭერილია სამი ნაგულისხმევი მომხმარებლის როლი:

  • ადმინისტრატორი

  • ავტორი

  • მკითხველი

ეს აადვილებს ნებართვების მართვას სხვადასხვა API საბოლოო წერტილებში.

სრული ბლოგის მოდულები

პროექტი მოიცავს რამდენიმე სრულად დანერგილ მოდულს, რომლებიც მოიცავს ბლოგის ყველა ძირითად ფუნქციონალს.

ავტორიზაციის მოდული

ახორციელებს ავთენტიფიკაციას და მომხმარებლის სესიებს.

საბოლოო წერტილები მოიცავს:

  • POST /auth/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

მომხმარებლების მოდული

მართავს მომხმარებლის ანგარიშებსა და პროფილებს.

საბოლოო წერტილები:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /users/:id

ჩაწერის ოპერაციებს ადმინისტრატორის ნებართვები სჭირდება .

პოსტების მოდული

პოსტების მოდული მართავს ბლოგის შინაარსს.

მახასიათებლები მოიცავს:

  • გვერდების დახარისხება

  • ფილტრაცია კატეგორიის, თეგის ან ავტორის მიხედვით

  • დახარისხება

  • სრული ტექსტის ძიება

  • გამორჩეული პოსტები

საბოლოო წერტილები:

  • GET /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

კატეგორიების მოდული

ბლოგ პოსტებს კატეგორიებად აჯგუფებს.

საბოლოო წერტილები:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

ტეგების მოდული

ბლოგ პოსტებისთვის მოქნილი ტეგების საშუალებას იძლევა.

საბოლოო წერტილები:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

კომენტარების მოდული

მხარს უჭერს კომენტარების თემებს და ჩადგმულ პასუხებს.

საბოლოო წერტილები:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /comments/:id

API-ის შესაძლებლობები

გვერდების დახარისხება

სიის ყველა ბოლო წერტილი მხარს უჭერს გვერდებად დაყოფას.

მაგალითი:

GET /posts?page=1&limit=6

ფილტრაცია

პოსტების ფილტრაცია შესაძლებელია კატეგორიის, თეგის ან ავტორის მიხედვით.

მაგალითი:

GET /posts?category=web-development

სრული ტექსტის ძიება

ძიების ფუნქცია დანერგილია პოსტებზე.

მაგალითი:

GET /posts?search=nestjs+mongodb

დახარისხება

API პასუხების დახარისხება შესაძლებელია სხვადასხვა ველების მიხედვით.

მაგალითი:

GET /posts?sortBy=createdAt&sortOrder=desc

ავტომატური შლაკების გენერირება

პოსტების შექმნისას, სისტემა slugify-ის გამოყენებით ავტომატურად წარმოქმნის URL-თან შესაბამის სლუგს სათაურიდან .

მაგალითი:

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

კითხვის დროის გაანგარიშება

API ავტომატურად ითვლის სავარაუდო კითხვის დროს პოსტების კონტენტის სიგრძის მიხედვით.

თანმიმდევრული API პასუხის ფორმატი

ყველა პასუხი მიჰყვება სტანდარტულ სტრუქტურას:

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

ეს აუმჯობესებს ფრონტ-ენდის ინტეგრაციას და გამართვას.

ტექნოლოგიების დასტა

ბექენდი აგებულია თანამედროვე Node.js სტეკის გამოყენებით.

ფენა ტექნოლოგია
ჩარჩო NestJS 11
ენა TypeScript 5.7
მონაცემთა ბაზა მონგოDB 8
ODM მანგუსტი 8
ავთენტიფიკაცია Passport.js + JWT
ვალიდაცია კლასის ვალიდატორი
API დოკუმენტაცია Swagger OpenAPI
პაროლის უსაფრთხოება კრიპტოგრაფი
შლაკების გენერატორი სლაგიფი
ტესტირება ხუმრობა

პროექტის სტრუქტურა

პროექტი მოდულური არქიტექტურის პრინციპს მიჰყვება.

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

მნიშვნელოვანი კომპონენტები მოიცავს:

  • DTO-ს ვალიდაცია

  • მანგუსტის სქემები

  • გლობალური გამონაკლისის ფილტრები

  • რეაგირების ინტერცეპტორები

  • JWT-ის მცველები

  • როლის შემსრულებლები

ეს სტრუქტურა კოდის ბაზას ორგანიზებულს და მასშტაბირებადს ინარჩუნებს.

როგორ დააინსტალიროთ და გაუშვათ პროექტი

წინაპირობები

ინსტალაციამდე დარწმუნდით, რომ გაქვთ:

  • Node.js 18.17+

  • მონგოDB 6+

  • npm, ნართი ან pnpm

რეპოზიტორიის კლონირება

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

ინსტალაციის დამოკიდებულებები

npm install

გარემოს ცვლადების კონფიგურაცია

დააკოპირეთ გარემოს მაგალითის ფაილი:

cp .env.example .env

განაახლეთ შემდეგი მნიშვნელობები:

MONGODB_URI= 
JWT_ACCESS_SECRET= 
JWT_REFRESH_SECRET= 

მონაცემთა ბაზის დათესვა

შეავსეთ მონაცემთა ბაზა ნიმუშის მონაცემებით:

npm run seed

გადატვირთვისა და ხელახლა დათესვისთვის:

npm run seed:refresh

გაუშვით განვითარების სერვერი

npm run start:dev

API-ის ბაზის URL:

http://localhost:3000/api/v1

Swagger-ის დოკუმენტაცია:

http://localhost:3000/api/docs

ნაგულისხმევი დათესილი მონაცემები

სათესლე სკრიპტი ტესტირებისთვის ნიმუშის მონაცემებს წარმოქმნის.

ერთეული რაოდენობა
მომხმარებლები 5
კატეგორიები 5
თეგები 28
პოსტები 10
კომენტარები 6

ნაგულისხმევი შესვლის სერთიფიკატები

პაროლი ყველა seeded მომხმარებლისთვის:

admin123

ანგარიშები:

როლი ელ. ფოსტა
ადმინისტრატორი [email protected]
ავტორი [email protected]
ავტორი [email protected]
ავტორი [email protected]
მკითხველი [email protected]

Swagger API დოკუმენტაცია

ინტერაქტიული API დოკუმენტაცია ხელმისაწვდომია შემდეგ ბმულზე:

http://localhost:3000/api/docs

Swagger გთავაზობთ:

  • ინტერაქტიული საბოლოო წერტილის ტესტირება

  • JWT authenticationმხარდაჭერა

  • მოთხოვნისა და პასუხის სქემის დოკუმენტაცია

რატომ გამოვიყენოთ ეს საცავი

NestJS MongoDB Blog API წარმოადგენს ძლიერ საწყის წერტილს დეველოპერებისთვის, რომლებიც ქმნიან თანამედროვე ბლოგის ბექენდს.

უპირატესობები მოიცავს:

  • სუფთა NestJS მოდულური არქიტექტურა

  • ჩაშენებული ავთენტიფიკაცია და RBAC

  • მზა Swagger API დოკუმენტაცია

  • MongoDB ინტეგრაცია Mongoose-ის გამოყენებით

  • მონაცემთა ბაზის დათესვის სისტემა

  • წარმოებისთვის მზად პროექტის სტრუქტურა

საცავი: https://github.com/bfotool/nestjs-mongodb-blog-base