Skip to content

البدء

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

البيئةالواجهة العامة (العميل)واجهة الإدارة (ملتقط / سائق)
محليhttp://localhost:5000http://localhost:5001
بادئة الإصدار/v1/v1

مثال: قائمة المنتجات GET http://localhost:5000/v1/products.

الترويسات

الترويسةمطلوبةملاحظات
Content-Type: application/jsonمع أجسام JSON
Accept-Languageموصى بهاar أو ar-* → العربية؛ غير ذلك → الإنجليزية
Authorization: Bearer <accessToken>بعد الدخولJWT وصول العميل أو الموظف
X-Cart-Tokenتطبيق العميل، الضيوفرمز معتم من results.cartToken
X-Assistant-Guestتطبيق العميل، الضيوفمفتاح ضيف hex بطول 32 تولّده وتحفظه

هوية العميل وسلة الضيف ومفتاح المساعد تُرسل في هذه الترويسات (أو في JSON للتحديث).

اللغة

يُفسَّر Accept-Language: يبدأ بـ arar، وإلا en. نصوص الكتالوج في الواجهة العامة محلولة مسبقاً لتلك اللغة. وثائق الإدارة/النواة ما تزال تستخدم كائنات { en, ar }.

المال

كل حقول المال أعداد صحيحة بالفلس. 1.250 د.ك = 1250. اعرض ثلاث خانات عشرية في الواجهة.

الصفحات

نقاط القائمة التي تقبل الترقيم تستخدم:

الاستعلامالافتراضيالأقصى
page1
limit20100
searchاختياري120 حرفاً

بيانات التعريف:

json
{
  "total": 80,
  "page": 1,
  "limit": 20,
  "hasMore": true
}

التعامل مع الرموز

  • بعد OTP أو دخول الموظف احفظ accessToken وrefreshToken (SecureStore). أرسل Authorization: Bearer <accessToken> مع كل طلب مصادق.
  • عند 401 استدعِ POST /v1/auth/refresh مع { "refreshToken" }، خزّن الزوج الجديد، وأعد المحاولة مرة واحدة. إن فشل التحديث أرسل المستخدم للدخول.
  • أثناء الضيف احفظ results.cartToken وأرسل X-Cart-Token مع السلة والتوصيل.
  • اللغة هي Accept-Language لكل طلب. لا تضع السلة أو التوصيل داخل JWT.
  • Swagger على /docs مولَّد من نفس مخططات TypeBox للمسارات. العمليات مجمّعة حسب الوحدة. استخدم Authorize لإرسال JWT Bearer.

وضع الصيانة

عند تفعيل صيانة المتجر تفشل عمليات /v1/cart وإنشاء/إلغاء الطلبات وكتابة المفضلة بخطأ تحقق. القراءات تبقى تعمل.