مرجع API

واجهة REST API كاملة لدمج جميع وظائف SalonBookIt في تطبيقك.

مقدمة

تتيح لك واجهة SalonBookIt API:

  • استعلام معلومات النشاط التجاري والخدمات والمحترفين
  • التحقق من توفر المواعيد
  • إنشاء وإدارة الحجوزات
  • إدارة العملاء وبرنامج نقاطهم
  • معالجة المدفوعات باستخدام Stripe

عنوان URL الأساسي

https://app.salonbookit.com/api/v1

تنسيق الاستجابة

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

JSON (نجاح)
{
    "success": true,
    "data": {
        // بيانات الاستجابة
    }
}
JSON (خطأ)
{
    "success": false,
    "error": {
        "code": "ERROR_CODE",
        "message": "وصف الخطأ"
    }
}

المصادقة

تستخدم الواجهة طريقتين للمصادقة:

مفتاح API (مطلوب دائماً)

يحدد نشاطك التجاري. يُرسل في الرأس X-API-Key.

X-API-Key: hh_pub_live_abc123...

رمز JWT (نقاط النهاية الخاصة)

يصادق على العميل. يُرسل في الرأس Authorization.

Authorization: Bearer eyJhbG...

راجع دليل المصادقة الكامل.

نقاط النهاية المتاحة

الكتالوج (عام)

الطريقة Endpoint الوصف
GET /negocio/ معلومات النشاط التجاري
GET /servicios/ قائمة الخدمات
GET /servicios/{id}/ تفاصيل الخدمة
GET /peluqueros/ قائمة المهنيين
GET /peluqueros/{id}/ تفاصيل المحترف
GET /disponibilidad/{peluquero}/{fecha}/ المواعيد المتاحة
GET /categorias/ فئات الخدمات
GET /productos/ منتجات المتجر

المصادقة

الطريقة Endpoint الوصف
POST /auth/registro/ تسجيل عميل جديد
POST /auth/login/ تسجيل الدخول
POST /auth/verify-otp/ التحقق من OTP
POST /auth/refresh/ تجديد رمز JWT

الحجوزات (مصادق)

الطريقة Endpoint الوصف
POST /reservas/crear/ إنشاء حجز
GET /cliente/reservas/ حجوزاتي
GET /reservas/{id}/ تفاصيل الحجز
POST /reservas/{id}/cancelar/ إلغاء الحجز

المدفوعات

الطريقة Endpoint الوصف
POST /pagos/intent/ إنشاء PaymentIntent
POST /pagos/confirmar/ تأكيد الدفع

العميل (مصادق)

الطريقة Endpoint الوصف
GET /cliente/perfil/ ملفي الشخصي
PUT /cliente/perfil/ تحديث الملف الشخصي
GET /cliente/puntos/ نقاطي

الترقيم

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

معلمات الاستعلام

المعامل النوع الافتراضي الوصف
page integer 1 رقم الصفحة
page_size integer 20 عناصر لكل صفحة (الحد الأقصى 100)

استجابة مرقمة

JSON
{
    "success": true,
    "data": {
        "items": [...],
        "pagination": {
            "page": 1,
            "page_size": 20,
            "total_items": 45,
            "total_pages": 3,
            "has_next": true,
            "has_prev": false
        }
    }
}

الفلاتر

تدعم العديد من نقاط النهاية الفلاتر عبر معلمات الاستعلام. راجع وثائق كل نقطة نهاية لمعرفة الفلاتر المتاحة.

مثال

HTTP
GET /api/v1/servicios/?categoria=1&activo=true&lang=es

رموز HTTP

الرمز المعنى
200 OK طلب ناجح
201 Created تم إنشاء المورد بنجاح
400 Bad Request خطأ في المعلمات المرسلة
401 Unauthorized المصادقة مطلوبة أو غير صالحة
403 Forbidden لا توجد صلاحيات لهذا الإجراء
404 Not Found المورد غير موجود
429 Too Many Requests تم تجاوز حد الطلبات
500 Internal Server Error خطأ في الخادم

راجع مرجع الأخطاء الكامل.