
تصميم واجهات REST وتكامل WebSocket
بناء واستهلاك بيانات السوق وواجهات التداول البرمجية
REST: الموارد والأفعال
REST يُطابق عمليات CRUD مع HTTP: GET للقراءة، POST للإنشاء، PATCH للتحديثات الجزئية، DELETE للحذف. استخدم رموز الحالة بصدق — 200 مع JSON خطأ يكسر العملاء.
ضع رقم الإصدار في المسار (/v1/)، رقّم القوائم الطويلة صفحيًا (تغذيات مؤشِّرة للتيارات القابلة للإضافة فقط)، ووثّق التغييرات الجذرية بنافذة إهمال.
المفاتيح وHMAC
مفاتيح API تُعرِّف؛ الأسرار تُثبِت. لنقاط نهاية التداول، وقِّع بـHMAC سلسلة نظامية (الطريقة + المسار + المحتوى + الطابع الزمني) حتى لا يسافر السرّ أبدًا على السلك. رفض الطوابع الزمنية القديمة يحجب إعادة التشغيل — نافذة ±30 ثانية شائعة.
OAuth يناسب تطبيقات الطرف الثالث؛ روبوتات البورصة الخالصة غالبًا تبقى على المفتاح+HMAC. حدود المعدل: توقّع 429 واحترم Retry-After.
ترقيات WebSocket
تبدأ الجلسة كطلب HTTP GET مع Upgrade: websocket؛ يُرجع الخادم 101 Switching Protocols. بعد ذلك، الحُزم رخيصة مقارنة بمصافحات TLS المتكررة عند استطلاع HTTP.
رسائل الاشتراك عادة JSON: الطريقة، القنوات، وأحيانًا توقيعات مصادقة للتنفيذات الخاصة.
دفاتر الأوامر، الصفقات، الاستعادة
تدفق الصفقات بيانات تكّة (tick)؛ دفاتر الأوامر لقطة + فروق مع أرقام تسلسل. إذا فوّتّ تسلسلات، أعِد المزامنة من لقطة REST ثم طبّق الفروق ذات التسلسل الأكبر من التسلسل عند اللقطة.
نبض القلب: أرسل ping أو توقّع نبضات من الخادم؛ أعِد الاتصال بتأخير متصاعد عشوائي لتجنّب الازدحام الجماعي.
GraphQL وOpenAPI
GraphQL يقلّص الجلب المُفرِط للوحات المعلومات؛ كثير من البورصات لا تزال تعرض REST لمسارات التداول الساخنة. مواصفات OpenAPI (Swagger) تساعد في توليد الكود وضمان الجودة — احتفظ بالأمثلة قابلة للنسخ واللصق مباشرة.
نمط استهلاك بسيط
شغّل حلقة WebSocket في مهمة، ادفع آخر الأسعار إلى خريطة أمنة الخيوط (thread-safe)، وعرِّض واجهة HTTP لفحوصات الصحة. سجّل عدّادات إعادة الاتصال؛ نبّه عند ارتفاعها.
ضع اختبارات التوقيع وانحراف الساعة في CI: HMAC معطوب في الإنتاج لا يمكن تمييزه عن «تحرّك السوق» حتى تُراجَع السجلات.