درخواست و پاسخ
این صفحه قالبهای بدنه درخواست، پوشش پاسخ، صفحهبندی، قالب تاریخ و مبلغ و نحوه تفسیر کدهای وضعیت 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 جمع نزنید؛ از یک کتابخانه decimal یا اعداد صحیح بر حسب کوچکترین واحد پول استفاده کنید.
زبان#
فهرست اتاقها فیلد language را میگیرد (ISO 639-1: tr، en، de…) و نام اتاقها، عنوان ویژگیها و پیامهای خطا را به همان زبان برمیگرداند. فهرست پکیجها languageID میخواهد؛ شناسهها از اندپوینت زبانها به دست میآیند.