واجهة برمجة التطبيقات Talabat E-Commerce API
وصف المشروع
واجهة برمجة التطبيقات Talabat E-Commerce API هي نظام خلفي متكامل وقابل للتطوير لدعم منصات التجارة الإلكترونية. تم تصميمها لتسهيل إدارة الحسابات، المنتجات، الطلبات، المدفوعات، وغيرها من العمليات. تعتمد الواجهة على ASP.NET Core 6 وتستخدم مبادئ تصميم حديثة لضمان الأداء العالي والقابلية للتوسع.
أهم المزايا
إدارة المستخدمين:
تسجيل مستخدمين جدد وتسجيل الدخول باستخدام JWT (JSON Web Token).
التحكم في الوصول بناءً على الأدوار (Role-Based Access Control).
إدارة المنتجات:
إنشاء المنتجات وإدارة خصائصها (الأسماء، الأوصاف، الأسعار، الصور).
دعم وظائف CRUD (إنشاء، قراءة، تحديث، حذف).
إدارة الطلبات:
إنشاء الطلبات وتتبع حالتها.
استعراض تاريخ الطلبات للمستخدمين.
عربة التسوق:
السماح للمستخدمين بإضافة المنتجات إلى عربة التسوق وتحديث الكميات.
إتمام عملية الدفع بأمان.
تكامل المدفوعات:
دمج بوابة المدفوعات Stripe لدعم طرق الدفع المتنوعة.
إدارة الشحن:
التعامل مع العناوين الخاصة بالشحن وحساب تكاليف الشحن.
أمان عالي:
تطبيق أفضل ممارسات تطوير الواجهات البرمجية مثل التحقق من الإدخال وتحديد معدل الاستخدام (Rate Limiting).
التعامل مع الأخطاء:
إدارة شاملة للأخطاء مع تسجيل الأخطاء لتحسين تجربة المستخدم.
التقنيات المستخدمة
ASP.NET Core 6: الإطار الأساسي لتطوير الواجهة الخلفية.
Entity Framework Core: للتعامل مع قاعدة البيانات.
SQL Server: نظام إدارة قواعد البيانات.
JWT: للتوثيق الآمن.
Stripe: بوابة الدفع المتكاملة.
AutoMapper: لتحويل الكائنات بين النماذج (Entities) وواجهات البيانات (DTOs).
Swagger: لتوثيق واختبار API.
Repository Pattern: لضمان فصل المسؤوليات وتنظيم الكود.
بنية المشروع (Architecture)
تم تنظيم المشروع بناءً على نمط العمارة النظيفة (Clean Architecture) لفصل المهام والمسؤوليات:
API Layer: يحتوي على الـ Controllers، الـ DTOs، الـ Extensions، الأخطاء (Errors)، المساعدات (Helpers)، والوسيطات (Middlewares).
Core Layer: يحتوي على الكيانات (Entities)، المواصفات (Specifications)، المستودعات (Repositories)، والخدمات (Services).
Repository Layer: مسؤول عن الوصول إلى البيانات وتنفيذ نمط المستودع (Repository Pattern).
Service Layer: يحتوي على الخدمات المسؤولة عن تنفيذ منطق الأعمال والوظائف.
شرح الكائنات الأساسية (Controllers)
1. AccountsController
الوظائف: تسجيل المستخدمين، تسجيل الدخول، وإدارة معلومات الحساب.
المسارات:
POST /api/Accounts/Register: تسجيل مستخدم جديد.
POST /api/Accounts/Login: تسجيل الدخول للمستخدمين الحاليين.
GET /api/Accounts/GetCurrentUser: استرجاع معلومات المستخدم الحالي.
GET /api/Accounts/Address: استرجاع العنوان المحفوظ للمستخدم.
PUT /api/Accounts/Address: تحديث العنوان.
2. BasketController
الوظائف: إدارة عمليات عربة التسوق.
المسارات:
GET /api/Basket/{id}: استرجاع عربة التسوق للمستخدم.
POST /api/Basket: تحديث محتويات العربة.
DELETE /api/Basket/{id}: حذف عربة التسوق.
3. OrdersController
الوظائف: إنشاء الطلبات واستعراضها.
المسارات:
POST /api/Orders: إنشاء طلب جديد.
GET /api/Orders: استرجاع جميع الطلبات للمستخدم.
GET /api/Orders/{id}: استرجاع طلب معين باستخدام معرفه.
4. PaymentsController
الوظائف: إدارة عمليات الدفع باستخدام Stripe.
المسارات:
POST /api/Payments/{BasketId}: إنشاء أو تحديث نية الدفع (Payment Intent).
POST /api/Payments/webhook: التعامل مع إشعارات Stripe لحالة الدفع.
5. ProductsController
الوظائف: عرض وإدارة معلومات المنتجات، العلامات التجارية، والفئات.
المسارات:
GET /api/Products: استرجاع جميع المنتجات مع دعم الفلترة، الفرز، والتقسيم إلى صفحات.
GET /api/Products/{id}: استرجاع منتج معين باستخدام معرفه.
مزايا إضافية
تحديثات المخزون التلقائية: يتم تحديث الكميات بعد كل عملية شراء أو إرجاع.
أدوات تحليل وتقارير شاملة: لتمكين أصحاب المتاجر من اتخاذ قرارات استراتيجية.
تصميم مرن ومتجاوب: يدعم جميع الأجهزة لضمان تجربة مستخدم متكاملة.
الخلاصة
واجهة برمجة التطبيقات Talabat E-Commerce API تقدم حلًا متكاملًا واحترافيًا لإدارة منصات التجارة الإلكترونية، مما يجعلها الخيار المثالي لبناء متاجر إلكترونية قابلة للتوسع وذات أداء عالي.