طبقة API موحّدة فوق مورّدين متعددين — طلب واحد، تجاوز تلقائي عند الفشل، وحالة موحّدة لكل الطلبات.
البوابة هي طبقة برمجية موحّدة تجلس بين منصّة EL OUATINE ومورّدي الخدمات. بدل التعامل مع كل مورّد على حدة، تتحدث تطبيقاتك مع واجهة واحدة: نفس الشكل لكل الأسعار، ونفس الشكل لكل الطلبات، ونفس الحالات (قيد الانتظار / قيد التنفيذ / مكتمل / فاشل / ملغي) مهما كان المورّد في الخلفية.
عند إرسال طلب، تختار البوابة المورّد حسب أولويات الورشة وصحّة المورّدين. إذا فشل المورّد الأول، يُعاد إرسال الطلب تلقائياً إلى المورّد التالي — دون أن تفقد الطلب ودون تدخّل يدوي.
| الطريقة | المسار | الصلاحية | الوصف |
|---|---|---|---|
GET | /api/v2/services | مفتاح Reseller | قائمة الخدمات بالأسعار |
GET | /api/v2/services/:id/price | مفتاح Reseller | سعر خدمة واحدة |
POST | /api/v2/orders | مفتاح Reseller | إنشاء طلب (مع مفتاح عدم التكرار) |
GET | /api/v2/orders/:id | مفتاح Reseller | حالة طلب — مع الحالة المباشرة من المورّد |
POST | /api/gateway/failover-test | الورشة | تجربة جافة: أي مورّد سيُختار؟ (دون طلب حقيقي) |
GET | /api/gateway/health | الورشة | صحّة المحوّلات: زمن الاستجابة والحالة |
curl -s https://securecelleouatine.com/api/v2/services \ -H "Authorization: Bearer <redacted>"
// Node.js — create an order through the gateway (failover built in)
const res = await fetch('https://securecelleouatine.com/api/v2/orders', {
method: 'POST',
headers: {
'Authorization': 'Bearer <redacted>',
'Content-Type': 'application/json',
'Idempotency-Key': 'my-unique-key-123'
},
body: JSON.stringify({ service_id: 42, imei: '356938035643809' })
});
const { ok, data } = await res.json();قيد الانتظارقيد التنفيذمكتملفاشلملغي