قالب واجهة برمجة تطبيقات مدونة NestJS MongoDB – واجهة خلفية REST كاملة الميزات للمدونات

يتطلب بناء نظام خلفي قابل للتوسع لمدونة بنيةً مُحكمة التنظيم، ونظام مصادقة، وواجهات برمجة تطبيقات موثقة بشكل صحيح. تُعدّ واجهة برمجة تطبيقات NestJS MongoDB Blog API قالبًا جاهزًا للاستخدام في بيئات الإنتاج، مصممًا لمساعدة المطورين على بناء منصات مدونات حديثة بسرعة باستخدام NestJS وMongoDB JWT authenticationوSwagger .

يوفر هذا المشروع واجهة برمجة تطبيقات RESTful كاملة تتضمن وحدات للمستخدمين والمنشورات والفئات والوسوم والتعليقات والمصادقة والتحكم في الوصول القائم على الأدوار .

المستودع: https://github.com/bfotool/nestjs-mongodb-blog-base

ما هي واجهة برمجة تطبيقات مدونة NestJS MongoDB؟

NestJS MongoDB Blog API عبارة عن قالب خلفي مفتوح المصدر تم بناؤه باستخدام NestJS 11 و MongoDB والذي يوفر واجهة برمجة تطبيقات REST كاملة الوظائف للمدونات.

صُمم ليكون بمثابة أساس للبناء:

  • منصات التدوين

  • أنظمة إدارة المحتوى بدون واجهة مستخدم

  • واجهات برمجة تطبيقات نشر المحتوى

  • مواقع التوثيق

  • مدونات أعمال المطورين

يتبع المشروع البنية المعيارية التي أوصت بها NestJS ، مما يضمن قابلية التوسع والصيانة.

المستودع: https://github.com/bfotool/nestjs-mongodb-blog-base

الميزات الرئيسية

المصادقة والتفويض

تتضمن واجهة برمجة التطبيقات نظام مصادقة آمن باستخدام رموز JWT.

تشمل ميزات المصادقة الرئيسية ما يلي:

  • رموز الوصول والتحديث JWT

  • التحكم في الوصول القائم على الأدوار(RBAC)

  • تشفير كلمات المرور باستخدام bcrypt

  • مسارات واجهة برمجة التطبيقات المحمية باستخدام الحماية

  • آلية تحديث الرمز المميز

يتم دعم ثلاثة أدوار افتراضية للمستخدم:

  • مسؤل

  • مؤلف

  • قارئ

وهذا يسهل إدارة الأذونات عبر نقاط نهاية واجهة برمجة التطبيقات المختلفة.

وحدات المدونة الكاملة

يتضمن المشروع العديد من الوحدات النمطية المنفذة بالكامل والتي تغطي جميع وظائف المدونة الأساسية.

وحدة المصادقة

يتولى إدارة المصادقة وجلسات المستخدمين.

تشمل نقاط النهاية ما يلي:

  • 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

إمكانيات واجهة برمجة التطبيقات

ترقيم الصفحات

تدعم جميع نقاط نهاية القوائم الترقيم.

مثال:

GET /posts?page=1&limit=6

تصفية

يمكن تصفية المنشورات حسب الفئة أو الوسم أو المؤلف.

مثال:

GET /posts?category=web-development

البحث في النص الكامل

تم تفعيل خاصية البحث في المنشورات.

مثال:

GET /posts?search=nestjs+mongodb

فرز

يمكن فرز استجابات واجهة برمجة التطبيقات(API) حسب حقول مختلفة.

مثال:

GET /posts?sortBy=createdAt&sortOrder=desc

توليد تلقائي للرصاص

عند إنشاء المنشورات، يقوم النظام تلقائيًا بإنشاء رابط URL سهل الاستخدام من العنوان باستخدام أداة slugify .

مثال:

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

حساب وقت القراءة

تقوم واجهة برمجة التطبيقات(API) تلقائيًا بحساب وقت القراءة المقدر بناءً على طول محتوى المنشورات.

تنسيق استجابة واجهة برمجة التطبيقات المتسق

تتبع جميع الردود بنية قياسية:

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

هذا يحسن تكامل الواجهة الأمامية وتصحيح الأخطاء.

مجموعة التقنيات

تم بناء الواجهة الخلفية باستخدام حزمة Node.js الحديثة.

طبقة تكنولوجيا
نطاق NestJS 11
لغة تايب سكريبت 5.7
قاعدة البيانات MongoDB 8
التصميم والتصنيع الأصلي مونغوس 8
المصادقة Passport.js + JWT
تصديق مدقق الفئات
وثائق واجهة برمجة التطبيقات Swagger OpenAPI
أمان كلمة المرور bcrypt
مولد العناكب slugify
الاختبار مزحة

هيكل المشروع

يتبع المشروع بنية معيارية.

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

تشمل المكونات المهمة ما يلي:

  • التحقق من صحة DTO

  • مخططات مونغوس

  • فلاتر الاستثناء العالمية

  • معترضات الاستجابة

  • حراس JWT

  • دور مصممي الديكور

يحافظ هذا الهيكل على تنظيم قاعدة التعليمات البرمجية وقابليتها للتوسع.

كيفية تثبيت المشروع وتشغيله

المتطلبات الأساسية

قبل التثبيت، تأكد من توفر ما يلي:

  • Node.js 18.17+

  • MongoDB 6+

  • npm أو yarn أو 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

عنوان URL الأساسي لواجهة برمجة التطبيقات:

http://localhost:3000/api/v1

وثائق Swagger:

http://localhost:3000/api/docs

البيانات الافتراضية المُدخلة

يقوم البرنامج النصي الأولي بإنشاء بيانات نموذجية للاختبار.

كيان عدد
المستخدمون 5
فئات 5
الوسوم 28
دعامات 10
تعليقات 6

بيانات تسجيل الدخول الافتراضية

كلمة المرور لجميع المستخدمين المسجلين:

admin123

الحسابات:

دور بريد إلكتروني
مسؤل [email protected]
مؤلف [email protected]
مؤلف [email protected]
مؤلف [email protected]
قارئ [email protected]

وثائق واجهة برمجة تطبيقات Swagger

تتوفر وثائق واجهة برمجة التطبيقات التفاعلية على الرابط التالي:

http://localhost:3000/api/docs

يوفر Swagger ما يلي:

  • اختبار نقاط النهاية التفاعلي

  • JWT authenticationيدعم

  • توثيق مخطط الطلب والاستجابة

لماذا نستخدم هذا المستودع؟

تُعد واجهة برمجة تطبيقات مدونة NestJS MongoDB نقطة انطلاق قوية للمطورين الذين يبنون واجهة خلفية حديثة للمدونات.

تشمل المزايا ما يلي:

  • بنية NestJS المعيارية النظيفة

  • مصادقة مدمجة ونظام التحكم في الوصول المستند إلى الأدوار

  • وثائق واجهة برمجة تطبيقات Swagger جاهزة للاستخدام

  • تكامل MongoDB باستخدام Mongoose

  • نظام تهيئة قواعد البيانات

  • هيكل المشروع الجاهز للإنتاج

المستودع: https://github.com/bfotool/nestjs-mongodb-blog-base