Заявки и отговори
Тази страница описва форматите на тялото на заявката, обвивката на отговора, страницирането, форматите на дати и суми и как да тълкувате HTTP кодовете за състояние.
Тяло на заявката#
Крайните точки използват един от два формата на тялото. Справочната страница на всяка крайна точка посочва кой се прилага.
| Формат | Content-Type | Използва се от |
|---|---|---|
| Полета на форма | application/x-www-form-urlencoded или multipart/form-data | Вход, списък със стаи, проверка на купон, държави |
| JSON | application/json | Изпращане на резервация (BookingPushRQ), стартиране на плащане |
| Query низ | — | Всички крайни точки с 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}) | Проверете ID. |
| 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; ID се вземат от крайната точка Езици.