الطلبات والاستجابات
تتناول هذه الصفحة تنسيقات متن الطلب، وغلاف الاستجابة، وتقسيم الصفحات، وتنسيقات التواريخ والمبالغ، وكيفية تفسير رموز حالة HTTP.
متون الطلبات#
تستخدم نقاط النهاية أحد تنسيقين للمتن، وتوضّح صفحة المرجع الخاصة بكل نقطة نهاية التنسيق المعتمد.
| التنسيق | Content-Type | يُستخدم في |
|---|---|---|
| حقول النموذج | application/x-www-form-urlencoded أو multipart/form-data | تسجيل الدخول، وقائمة الغرف، والتحقق من القسيمة، والدول |
| JSON | application/json | إرسال الحجز (BookingPushRQ)، وبدء الدفع |
| سلسلة الاستعلام | — | جميع نقاط النهاية من نوع GET |
تُكرَّر حقول المصفوفات في متون النماذج مع أقواس مربعة: childAges[]=7&childAges[]=12. ويجب أن تكون متون JSON بترميز UTF-8.
غلاف الاستجابة#
الاستجابات بتنسيق JSON، ويحمل معظمها مؤشر success؛ وتعود القوائم مع count وitems:
{
"success": true,
"count": 3,
"items": [
{
"id": 1,
"titleCode": "TRY",
"symbol": "₺",
"price": 1
},
{
"id": 2,
"titleCode": "EUR",
"symbol": "€",
"price": 47.85000000000000142108547152020037174224853515625
}
]
}عند إخفاق التحقق من قواعد العمل تُعاد success: false مع وصف للخطأ، بأحد شكلين:
{
"success": false,
"message": "online_cupon_is_not_found"
}{
"success": false,
"errorMessage": "Invalid parameters.",
"errorCode": 10022
}الاستثناءات: تعيد نقطة نهاية بيانات الاتصال كائنًا مجردًا دون غلاف، ويعيد إرسال الحجز كائن BookingPushRS. وكلاهما موضّح في المرجع.
رموز حالة HTTP#
| الرمز | متى | ما العمل |
|---|---|---|
| 200 | عولج الطلب (نجاح أو خطأ في قواعد العمل) | افحص success وmessage / errorCode. |
| 401 | الرمز المميز مفقود أو غير صحيح الصيغة أو غير معروف | سجّل الدخول مجددًا؛ راجع المصادقة. |
| 404 | معامل المسار لا يطابق أي سجل (مثل /hotel/{hotelID}/… و/payment/type/{paymentType}) | تحقق من المعرّف. |
| 405 | طريقة HTTP خاطئة | استخدم الطريقة المذكورة في المرجع (الدول وقائمة الغرف تستخدمان POST). |
| 500 | خطأ غير متوقع في الخادم | أعد المحاولة بعد مهلة قصيرة؛ وإذا استمر الخطأ، فافتح تذكرة دعم وأرفق الطلب. |
تقسيم الصفحات#
نقاط نهاية القوائم (/external/currencies، /external/languages، /external/online/social/media، /external/stock/packages) مقسّمة إلى صفحات حسب رقم الصفحة:
| المعامل | الوصف | الافتراضي |
|---|---|---|
limit | عدد السجلات في الصفحة. | 20 |
page | رقم الصفحة، بدءًا من 1. | 1 |
offset | عدد السجلات المراد تخطيها. عند تحديده يُتجاهل page. | — |
order | حقل الترتيب؛ أضف - في البداية للترتيب التنازلي (-id). الحقول المسموح بها مذكورة لكل نقطة نهاية. | — |
count هو العدد الإجمالي للسجلات؛ وتنتهي القائمة عندما يتحقق page × limit ≥ count.
التواريخ والأوقات والمبالغ#
| النوع | التنسيق | مثال |
|---|---|---|
| تاريخ الطلب | YYYY-MM-DD | 2026-08-18 |
| تاريخ التوافر | YYYY-MM-DD أو YYYY-MM-DDTHH:MM:SS | 2026-08-18T12:00:00 |
| تاريخ سعر الليلة (في الاستجابة) | DD.MM.YYYY (الحقل tarih) | 18.08.2026 |
| نطاق يوم التوافر (في الاستجابة) | YYYY-MM-DD HH:MM:SS، من 12:00 حتى 12:00 من اليوم التالي | 2026-08-18 12:00:00 |
| المبلغ | سلسلة نصية بمنزلتين عشريتين، والفاصل العشري نقطة | "965.00" |
| العملة | ISO 4217؛ مأخوذة من إعدادات قناة الحجز عبر الإنترنت لدى الفندق | TRY |
| المنطقة الزمنية | المنطقة الزمنية للفندق | Europe/Istanbul |
لا يُحتسب تاريخ المغادرة ضمن الإقامة: من 18 إلى 20 أغسطس ليلتان. لا تجمع المبالغ باستخدام float؛ بل استخدم مكتبة للأعداد العشرية أو أعدادًا صحيحة بأصغر وحدة نقدية.
اللغة#
تستقبل قائمة الغرف الحقل language (ISO 639-1: tr، en، de…) وتعيد أسماء الغرف وعناوين المزايا ورسائل الأخطاء بتلك اللغة. أما قائمة الباقات فتتوقع languageID، وتؤخذ المعرّفات من نقطة النهاية اللغات.