مفاتيح API
يبدأ المفتاح بـ mk_live_ يليها 40 حرفًا، ويخص متجرًا واحدًا بالضبط. يُرسَل في ترويسة X-Api-Key — ولا يقرؤه إلا المساران POST /v1/auth/anonymous وPOST /v1/auth/refresh. كل مسار آخر يتجاهله ويطلب رمز الوصول.
- أبقِ المفتاح على خادمك. لا يجوز أن يصل إلى حزمة متصفح أو ملف تطبيق جوال.
- يظهر المفتاح مرة واحدة عند إصداره؛ ولا يحتفظ matgrk إلا ببصمته.
- لكل مفتاح حدّ طلباته الخاص، محسوبًا في الدقيقة.
- الجلسة الصادرة بمفتاح لا تُحدَّث إلا بالمفتاح نفسه — إلغاء المفتاح ينهي جلساته عند أول تحديث تالٍ.
رمزا الوصول والتحديث
POST /v1/auth/anonymous يُصدر زوج رموز لمتجر المفتاح. رمز الوصول يعيش 15 دقيقة ويُرسَل في ترويسة Authorization: Bearer؛ ورمز التحديث يعيش 30 يومًا ويُستعمل مرة واحدة — كل تحديث يستهلك الرمز المقدَّم ويُصدر زوجًا جديدًا، وإعادة استعمال رمز مستهلك مرفوضة.
curl -X POST https://api.matgrk.com/v1/auth/anonymous \
-H "X-Api-Key: mk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"transport": "bearer", "scope": ["catalogue:read", "cart:write"]}'curl -X POST https://api.matgrk.com/v1/auth/refresh \
-H "X-Api-Key: mk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"refreshToken": "REFRESH_TOKEN"}'النقل بالكوكيز
مرِّر "transport": "cookie" بدلًا من ذلك فتوضع الرموز في كوكيز httpOnly وsecure — ولا يحمل جسم الاستجابة حينها أي رمز، فلا تستطيع سكربتات الصفحة قراءته. والتحديث عبر الكوكي لا يحتاج جسمًا.
النطاقات
يحمل الرمز النطاقات التي صدر بها، وكل مسار يتحقق من نطاق واحد معلَن. طلب النطاقات عند الإصدار لا يستطيع إلا التضييق — الاسم غير المعلَن مرفوض، والطلب خارج نطاقات الرمز يُجاب بـ 403 INSUFFICIENT_SCOPE.
catalogue:readقراءة المنتجات والتصنيفات والعلاماتsearch:readاقتراحات البحث وسياقهcart:readقراءة سلة التسوق الحاليةcart:writeإنشاء السلة وتعديلهاcheckout:writeالتسعير واختيار طريقة التسليم وإتمام الطلبaccount:readقراءة ملف المتسوق وعناوينهaccount:writeالتسجيل وتسجيل الدخول وإدارة العناوينorders:readقراءة طلبات المتسوق
جلسات المتسوقين
كل جلسة تبدأ مجهولة. مسارات /v1/account/* — التسجيل وتسجيل الدخول ورموز التحقق — تربط متسوقًا بالجلسة، فتتبعه سلته وعناوينه وطلباته من هناك.