المصادقة
كل طلب إلى واجهة منفذ يُصادق عليه بمفتاح فريقك عبر ترويسة Authorization بأسلوب Bearer.
مفتاح API
لكل فريق مفتاح واحد يبدأ بالبادئة mnf_live_ متبوعة بسلسلة سداسية عشرية. تجده في لوحة تحكم فريقك.
أرسل المفتاح في كل طلب ضمن الترويسة:
Authorization: Bearer mnf_live_9f2c4a7d1e8b3f6c5a0d9e2bالمفتاح سرّ
عامل المفتاح كما تعامل كلمة مرور: خزّنه في متغيرات البيئة أو مدير أسرار، ولا تضعه في كود الواجهة الأمامية أو مستودعات الشيفرة.
جرّب أول طلب
أبسط طلب موقّع هو قائمة الناقلين:
curl -s "https://manfath.example/api/v1/carriers" \
-H "Authorization: Bearer $MANFATH_API_KEY"عنوان البيئة
استبدل manfath.example بعنوان بيئة الورشة الذي زوّدك به المدرب. جميع الأمثلة في هذه الوثائق تستخدم المتغير MANFATH_API_KEY لتفادي كتابة المفتاح في الشيفرة.
تدوير المفاتيح
إن اشتبهت بتسرب المفتاح فاطلب تدويره من لوحة التحكم. يدعم منفذ مفتاحًا ثانويًا يعمل بالتوازي مع الأساسي خلال فترة الانتقال، فتحدّث أنظمتك تدريجيًا دون انقطاع ثم تلغي المفتاح القديم.
حدود الطلبات
الحد 60 طلبًا في الدقيقة لكل مفتاح. عند التجاوز تعيد الواجهة 429 مع ترويسة Retry-After التي تخبرك بعدد الثواني قبل إعادة المحاولة.
تصاحب كل استجابة ترويسات تساعدك على البقاء تحت الحد:
| Header | الوصف |
|---|---|
X-RateLimit-Limit | الحد الأقصى للطلبات في النافذة الحالية |
X-RateLimit-Remaining | عدد الطلبات المتبقية في النافذة |
Retry-After | على استجابات 429: ثوانٍ قبل إعادة المحاولة |
X-Manfath-Request-Id | معرّف فريد للطلب — سجّله وأرفقه عند التواصل مع الدعم |
غلاف الأخطاء
جميع الأخطاء — من أي نقطة نهاية — تعود بالغلاف الموحّد نفسه، برسالة بالعربية وأخرى بالإنجليزية وحقل details اختياري بتفاصيل آلية:
{
"error": {
"code": "E_UNAUTHENTICATED",
"message_en": "Missing or invalid API key. Send Authorization: Bearer mnf_live_...",
"message_ar": "مفتاح API مفقود أو غير صالح. أرسل Authorization: Bearer mnf_live_...",
"details": null
}
}أشهر الرموز التي ستقابلها:
| الرمز | HTTP | الوصف |
|---|---|---|
E_UNAUTHENTICATED | 401 | مفتاح API مفقود أو غير صالح |
E_VALIDATION | 422 | فشل التحقق من صحة الطلب |
E_NOT_FOUND | 404 | المورد غير موجود |
E_QUOTE_EXPIRED | 409 | انتهت صلاحية التسعيرة |
E_ADDRESS_NOT_NORMALISED | 422 | العنوان غير مطابق للعنوان الوطني |
E_CANCEL_NOT_ALLOWED | 409 | لا يمكن الإلغاء بعد الاستلام |
E_RATE_LIMITED | 429 | تم تجاوز حد الطلبات |
E_CARRIER_UNAVAILABLE | 503 | الناقل غير متاح مؤقتًا |