Riverdesk
المحتويات

دليل واجهة القنوات

الأخطاء وإعادة المحاولة

صيغة الخطأ

{ "error": { "code": "NOT_AVAILABLE", "message": "Not enough free cabins", "details": {} } }

اعتمد في منطقك على code، ولا تعتمد أبدًا على message.

HTTP الرموز
400 VALIDATION_FAILED: الطلب لا يطابق العقد التقني (بما في ذلك الحقول غير المعروفة)
401 UNAUTHENTICATED: احصل على token جديد
403 CONTRACT_FORBIDS، FORBIDDEN
404 NOT_FOUND، وكذلك للحجوزات المؤقتة والحجوزات الخاصة بقناة أخرى
409 NOT_AVAILABLE، STOP_SALE، SAILING_CLOSED، HOLD_EXPIRED، HOLD_NOT_ACTIVE، QUOTE_EXPIRED، REVISION_CHANGED، INVALID_STATE، RETRY_LATER، IN_PROGRESS
422 INVALID_OCCUPANCY، NO_RATE_FOR_SEASON، IDEMPOTENCY_KEY_REUSED
429 RATE_LIMITED
503 SERVICE_UNAVAILABLE

مفاتيح منع التكرار (Idempotency-Key)

يحتاج كل طلب POST وPATCH وDELETE إلى header باسم Idempotency-Key. استخدم UUID جديدًا لكل إجراء، والقيمة نفسها عند إعادة محاولة ذلك الإجراء. يحتفظ ريفرديسك بالمفاتيح لمدة ٧ أيام ويُعيد النتيجة الأصلية عند التكرار.

الحالة ما يجب فعله
انتهاء المهلة أو خطأ في الشبكة أثناء عملية كتابة أعد المحاولة بالمفتاح نفسه: تحصل على النتيجة الأصلية، ولن يُنشأ حجز ثانٍ أبدًا
409 IN_PROGRESS محاولتك الأولى ما زالت قيد التنفيذ. انتظر عدد الثواني المحدد في Retry-After، ثم أعد المحاولة بالمفتاح نفسه
422 IDEMPOTENCY_KEY_REUSED المفتاح نفسه مع محتوى مختلف. هذا خطأ برمجي: استخدم مفتاحًا جديدًا لكل إجراء
إعادة المحاولة بعد أكثر من ٧ أيام أكّد أو اطلب مرة أخرى بالقيمة نفسها لـ channel_ref: يُعاد الحجز الموجود
409 RETRY_LATER ضغط شديد على النظام. أعد المحاولة بعد Retry-After
429 RATE_LIMITED انتظر عدد الثواني المحدد في Retry-After
503 SERVICE_UNAVAILABLE لا يستطيع ريفرديسك الوصول إلى قاعدة بياناته. اعرض الإبحارات على أنها عند الطلب، وأعد المحاولة بعد Retry-After (٣٠ ثانية)