მასშტაბირებადი ბლოგის ბექენდის შექმნას სჭირდება კარგად სტრუქტურირებული არქიტექტურა, ავთენტიფიკაციის სისტემა და სათანადოდ დოკუმენტირებული 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/registerPOST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/profile
მომხმარებლების მოდული
მართავს მომხმარებლის ანგარიშებსა და პროფილებს.
საბოლოო წერტილები:
GET /usersGET /users/:idPATCH /users/:idDELETE /users/:id
ჩაწერის ოპერაციებს ადმინისტრატორის ნებართვები სჭირდება .
პოსტების მოდული
პოსტების მოდული მართავს ბლოგის შინაარსს.
მახასიათებლები მოიცავს:
გვერდების დახარისხება
ფილტრაცია კატეგორიის, თეგის ან ავტორის მიხედვით
დახარისხება
სრული ტექსტის ძიება
გამორჩეული პოსტები
საბოლოო წერტილები:
GET /postsGET /posts/featuredGET /posts/:slugPOST /postsPATCH /posts/:idDELETE /posts/:id
კატეგორიების მოდული
ბლოგ პოსტებს კატეგორიებად აჯგუფებს.
საბოლოო წერტილები:
GET /categoriesGET /categories/:slugPOST /categoriesPATCH /categories/:idDELETE /categories/:id
ტეგების მოდული
ბლოგ პოსტებისთვის მოქნილი ტეგების საშუალებას იძლევა.
საბოლოო წერტილები:
GET /tagsGET /tags/:slugPOST /tagsPATCH /tags/:idDELETE /tags/:id
კომენტარების მოდული
მხარს უჭერს კომენტარების თემებს და ჩადგმულ პასუხებს.
საბოლოო წერტილები:
GET /comments/post/:postIdGET /comments/:id/repliesPOST /commentsPATCH /comments/:idDELETE /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-ის გამოყენებით
მონაცემთა ბაზის დათესვის სისტემა
წარმოებისთვის მზად პროექტის სტრუქტურა



