API Сервис Ostrovok — различия между версиями
[непроверенная версия] | [непроверенная версия] |
Aefremov (обсуждение | вклад) (→Описание методов) |
Aefremov (обсуждение | вклад) (→Описание методов) |
||
Строка 5: | Строка 5: | ||
==Описание методов== | ==Описание методов== | ||
− | ===Получение информации обо всех отелях=== | + | ===Получение информации обо всех отелях (Hotels)=== |
Метод возвращает список отелей в формате ndjson в сжатом виде. Формат каждого отеля в результате идентичен результату запроса одного отеля..<br /> | Метод возвращает список отелей в формате ndjson в сжатом виде. Формат каждого отеля в результате идентичен результату запроса одного отеля..<br /> | ||
* Формат запроса: | * Формат запроса: | ||
Строка 130: | Строка 130: | ||
</div></div><br /> | </div></div><br /> | ||
− | ===Получение информации об отеле по его ключу=== | + | ===Получение информации об отеле по его ключу (Hotels)=== |
Метод возвращает информацию по отелю по ключу отеля в формате ndjson в сжатом виде. Формат каждого отеля в результате идентичен результату запроса одного отеля..<br /> | Метод возвращает информацию по отелю по ключу отеля в формате ndjson в сжатом виде. Формат каждого отеля в результате идентичен результату запроса одного отеля..<br /> | ||
* Формат запроса: | * Формат запроса: | ||
Строка 256: | Строка 256: | ||
</div></div><br /> | </div></div><br /> | ||
− | ===Получение информации о типах питания=== | + | ===Получение информации о типах питания (Meals)=== |
Метод возвращает список типов питания в формате ndjson в сжатом виде.<br /> | Метод возвращает список типов питания в формате ndjson в сжатом виде.<br /> | ||
* Формат запроса: | * Формат запроса: | ||
Строка 287: | Строка 287: | ||
</div></div><br /> | </div></div><br /> | ||
− | ===Получение информации о типах размещений по отелям или региону с учетом цен=== | + | ===Получение информации о типах размещений по отелям или региону с учетом цен (Search)=== |
Метод возвращает список типов размещений по отелям или региону с учетом цен.<br /> | Метод возвращает список типов размещений по отелям или региону с учетом цен.<br /> | ||
* Формат запроса: | * Формат запроса: | ||
Строка 351: | Строка 351: | ||
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
{ | { | ||
− | "id": "1", | + | "hotel_id": "2967", |
− | "name": " | + | "rates": [ |
+ | { | ||
+ | "id": "iNiyYHLAH4p8wJj3wRAskxepfDvz1xZUtXv5tk", | ||
+ | "price": 991.0, | ||
+ | "payment_type": "prepay", | ||
+ | "currency": "EU", | ||
+ | "meals": [ | ||
+ | { | ||
+ | "id": "4", | ||
+ | "name": "Half Board" | ||
+ | } | ||
+ | ], | ||
+ | "cancellation_policies": [ | ||
+ | { | ||
+ | "from": "2023-06-01T00:00:00Z", | ||
+ | "amount": 514.0 | ||
+ | } | ||
+ | ], | ||
+ | "rooms": [ | ||
+ | { | ||
+ | "id": "BDSDaaah", | ||
+ | "name": "Double Room Standard" | ||
+ | }, | ||
+ | { | ||
+ | "id": "gX2NoxW1W8", | ||
+ | "name": "SGL Standard-A Sea View" | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | "id": "vwJTArRmsEX8H8yYwtYNdxExixCz1DZTQXJgLd", | ||
+ | "price": 961.0, | ||
+ | "payment_type": "prepay", | ||
+ | "currency": "EU", | ||
+ | "meals": [ | ||
+ | { | ||
+ | "id": "2", | ||
+ | "name": "All Inclusive" | ||
+ | } | ||
+ | ], | ||
+ | "cancellation_policies": [ | ||
+ | { | ||
+ | "from": "2023-06-01T00:00:00Z", | ||
+ | "amount": 634.0 | ||
+ | } | ||
+ | ], | ||
+ | "rooms": [ | ||
+ | { | ||
+ | "id": "RpTXa6oM", | ||
+ | "name": "Double Room Standard" | ||
+ | }, | ||
+ | { | ||
+ | "id": "zMp6r6xWdkC", | ||
+ | "name": "SGL Standard-A City View" | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | "id": "vwJTArRmsEX8H8yYwtYNdxExixCz1DZTQXJgLd", | ||
+ | "price": 1141.0, | ||
+ | "payment_type": "prepay", | ||
+ | "currency": "EU", | ||
+ | "meals": [ | ||
+ | { | ||
+ | "id": "2", | ||
+ | "name": "All Inclusive" | ||
+ | } | ||
+ | ], | ||
+ | "cancellation_policies": [ | ||
+ | { | ||
+ | "from": "2023-06-01T00:00:00Z", | ||
+ | "amount": 634.0 | ||
+ | } | ||
+ | ], | ||
+ | "rooms": [ | ||
+ | { | ||
+ | "id": "RpTXa6oM", | ||
+ | "name": "Double Room Standard" | ||
+ | }, | ||
+ | { | ||
+ | "id": "RposoDW108", | ||
+ | "name": "SGL Standard-A Standard" | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | "id": "iN8TmwL3HExiwCUAsL3wWDEDiDC4kxIyLx8PRW", | ||
+ | "price": 1561.0, | ||
+ | "payment_type": "prepay", | ||
+ | "currency": "EU", | ||
+ | "meals": [ | ||
+ | { | ||
+ | "id": "2", | ||
+ | "name": "All Inclusive" | ||
+ | } | ||
+ | ], | ||
+ | "cancellation_policies": [ | ||
+ | { | ||
+ | "from": "2023-06-01T00:00:00Z", | ||
+ | "amount": 874.0 | ||
+ | } | ||
+ | ], | ||
+ | "rooms": [ | ||
+ | { | ||
+ | "id": "nDUpoo6V", | ||
+ | "name": "Double Room Sea View" | ||
+ | }, | ||
+ | { | ||
+ | "id": "gD6r2pdW18", | ||
+ | "name": "SGL Standard-A Sea View" | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ===Получение информации о вариантах размещений по конкретному отелю (Search)=== | ||
+ | Метод возвращает список типов размещений по отелям или региону с учетом цен.<br /> | ||
+ | * Формат запроса: | ||
+ | ** POST .../ostrovok/v1/search/hotel_id | ||
+ | * Принимаемые параметры: | ||
+ | ** '''hotel_id *''' – ключ отеля | ||
+ | ** '''check_in *''' – дата планируемого заезда | ||
+ | ** '''check_out *''' – дата выезда | ||
+ | ** '''guests_groups *''' – список групп гостей для отбора размещений | ||
+ | *** '''adults''' – взрослых | ||
+ | *** '''children_ages''' – список возрастов детей | ||
+ | |||
+ | * Возвращаемый результат: | ||
+ | ** '''hotel_id *''' – идентификатор отеля | ||
+ | ** '''rates''' – список вариантов размещения | ||
+ | *** '''id *''' – идентификатор размещения, формируется сервисом | ||
+ | *** '''price *''' – цена | ||
+ | *** '''commission''' – комиссия | ||
+ | *** '''payment_type *''' – тип платежа (предоплата или по заезду) | ||
+ | *** '''currency *''' – валюта | ||
+ | *** '''meals''' – список типов питания | ||
+ | **** '''id *''' – идентификатор питания | ||
+ | **** '''name *''' – наименование питания, | ||
+ | *** '''cancellation_policies''' – список штрафов | ||
+ | **** '''from *''' – начало действия штрафа | ||
+ | **** '''amount *''' – величина штрафа | ||
+ | *** '''rooms *''' – список комнат | ||
+ | **** '''id *''' – идентификатор, генерируемый системой | ||
+ | **** '''name *''' – наименование комнаты (например, «Deluxe Room») | ||
+ | **** '''bed_groups – список групп размещений | ||
+ | ***** '''id *''' – идентификатор размещения | ||
+ | ***** '''name''' – наименование размещения (например, «double + twin») | ||
+ | ***** '''bed_types''' – список вариантов спальных мест | ||
+ | ****** '''name *''' – наименование (например, «double») | ||
+ | ****** '''quantity''' – количество мест | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
+ | Вызов метода search | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | POST http://localhost:7700/ostrovok/v1/search | ||
+ | { | ||
+ | "hotel_id": 2967 | ||
+ | "check_in": "2023-06-01", | ||
+ | "check_out": "2023-06-07", | ||
+ | "residency": "BG", | ||
+ | "guests_groups": [ | ||
+ | { | ||
+ | "adults": 2 | ||
+ | }, | ||
+ | { | ||
+ | "adults": 1 | ||
+ | } | ||
+ | ], | ||
+ | "hotel_ids": [ | ||
+ | "2967" | ||
+ | ] | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода search | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | { | ||
+ | "hotel_id": "2967", | ||
+ | "rates": [ | ||
+ | { | ||
+ | "id": "iNiyYHLAH4p8wJj3wRAskxepfDvz1xZUtXv5tk", | ||
+ | "price": 991.0, | ||
+ | "payment_type": "prepay", | ||
+ | "currency": "EU", | ||
+ | "meals": [ | ||
+ | { | ||
+ | "id": "4", | ||
+ | "name": "Half Board" | ||
+ | } | ||
+ | ], | ||
+ | "cancellation_policies": [ | ||
+ | { | ||
+ | "from": "2023-06-01T00:00:00Z", | ||
+ | "amount": 514.0 | ||
+ | } | ||
+ | ], | ||
+ | "rooms": [ | ||
+ | { | ||
+ | "id": "BDSDaaah", | ||
+ | "name": "Double Room Standard" | ||
+ | }, | ||
+ | { | ||
+ | "id": "gX2NoxW1W8", | ||
+ | "name": "SGL Standard-A Sea View" | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | "id": "vwJTArRmsEX8H8yYwtYNdxExixCz1DZTQXJgLd", | ||
+ | "price": 961.0, | ||
+ | "payment_type": "prepay", | ||
+ | "currency": "EU", | ||
+ | "meals": [ | ||
+ | { | ||
+ | "id": "2", | ||
+ | "name": "All Inclusive" | ||
+ | } | ||
+ | ], | ||
+ | "cancellation_policies": [ | ||
+ | { | ||
+ | "from": "2023-06-01T00:00:00Z", | ||
+ | "amount": 634.0 | ||
+ | } | ||
+ | ], | ||
+ | "rooms": [ | ||
+ | { | ||
+ | "id": "RpTXa6oM", | ||
+ | "name": "Double Room Standard" | ||
+ | }, | ||
+ | { | ||
+ | "id": "zMp6r6xWdkC", | ||
+ | "name": "SGL Standard-A City View" | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | "id": "vwJTArRmsEX8H8yYwtYNdxExixCz1DZTQXJgLd", | ||
+ | "price": 1141.0, | ||
+ | "payment_type": "prepay", | ||
+ | "currency": "EU", | ||
+ | "meals": [ | ||
+ | { | ||
+ | "id": "2", | ||
+ | "name": "All Inclusive" | ||
+ | } | ||
+ | ], | ||
+ | "cancellation_policies": [ | ||
+ | { | ||
+ | "from": "2023-06-01T00:00:00Z", | ||
+ | "amount": 634.0 | ||
+ | } | ||
+ | ], | ||
+ | "rooms": [ | ||
+ | { | ||
+ | "id": "RpTXa6oM", | ||
+ | "name": "Double Room Standard" | ||
+ | }, | ||
+ | { | ||
+ | "id": "RposoDW108", | ||
+ | "name": "SGL Standard-A Standard" | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | "id": "iN8TmwL3HExiwCUAsL3wWDEDiDC4kxIyLx8PRW", | ||
+ | "price": 1561.0, | ||
+ | "payment_type": "prepay", | ||
+ | "currency": "EU", | ||
+ | "meals": [ | ||
+ | { | ||
+ | "id": "2", | ||
+ | "name": "All Inclusive" | ||
+ | } | ||
+ | ], | ||
+ | "cancellation_policies": [ | ||
+ | { | ||
+ | "from": "2023-06-01T00:00:00Z", | ||
+ | "amount": 874.0 | ||
+ | } | ||
+ | ], | ||
+ | "rooms": [ | ||
+ | { | ||
+ | "id": "nDUpoo6V", | ||
+ | "name": "Double Room Sea View" | ||
+ | }, | ||
+ | { | ||
+ | "id": "gD6r2pdW18", | ||
+ | "name": "SGL Standard-A Sea View" | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ===Бронирование (book)=== | ||
+ | Метод возвращает список типов размещений по отелям или региону с учетом цен.<br /> | ||
+ | * Формат запроса: | ||
+ | ** POST .../ostrovok/v1/book | ||
+ | * Принимаемые параметры: | ||
+ | ** '''hotel_id *''' – ключ отеля | ||
+ | ** '''rate_id *''' – идентификатор размещения из результатов запроса search | ||
+ | ** '''client_reference_id *''' – ключ бронирования, сгенерированный провайдером | ||
+ | ** '''reservation_holder *''' – лицо, бронирующее номер | ||
+ | *** '''first_name *''' – имя | ||
+ | *** '''last_name *''' – фамилия | ||
+ | ** '''contact_info *''' – контактные данные бронирующего | ||
+ | *** '''email *''' – электронная почта | ||
+ | *** '''phone *''' – телефон | ||
+ | ** '''price *''' – цена, по которой бронируют | ||
+ | ** '''rooms *''' – список, комнаты из результата search, выбранные для бронирования [ | ||
+ | ** '''id *''' – идентификатор комнаты из результатов search | ||
+ | ** '''guests *''' – список гостей – параметры туристов в комнате | ||
+ | *** '''first_name *''' – имя гостя | ||
+ | *** '''last_name *''' – фамилия гостя | ||
+ | *** '''is_child *''' – ребенок или нет | ||
+ | ** '''comments''' – комментарии к заезду | ||
+ | |||
+ | * Возвращаемый результат: | ||
+ | ** '''reservation_id *''' – идентификатор заявки в базе данных | ||
+ | ** '''client_reference_id *''' – идентификатор заявки, назначенный провайдером | ||
+ | ** '''status *''' – статус заявки, принята, аннулирована, ожидает. | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
+ | Вызов метода book | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | POST http://localhost:7700/ostrovok/v1/book | ||
+ | { | ||
+ | "hotel_id": "4456", | ||
+ | "rate_id": "8HiymNB3w4XCw8TmwBms1DeXinDKXQVDFFaa", | ||
+ | "client_reference_id": "ca115bce-5746-4418-9bba-7715d3751dc9", | ||
+ | "reservation_holder": { | ||
+ | "first_name": "Tomas", | ||
+ | "last_name": "Smith", | ||
+ | "is_child": false | ||
+ | }, | ||
+ | "contact_info": { | ||
+ | "email": "support@emergingtravel.com", | ||
+ | "phone": "+74992156525" | ||
+ | }, | ||
+ | "price": 488.9, | ||
+ | "rooms": [ | ||
+ | { | ||
+ | "id": "IfpatDCi8w", | ||
+ | "guests": [ | ||
+ | { | ||
+ | "first_name": "Maxim", | ||
+ | "last_name": "Ivanov", | ||
+ | "is_child": false | ||
+ | }, | ||
+ | { | ||
+ | "first_name": "Igor", | ||
+ | "last_name": "Petrov", | ||
+ | "is_child": false | ||
+ | } | ||
+ | ] | ||
}, | }, | ||
{ | { | ||
− | + | "id": "ZfD6WDiJwK", | |
− | " | + | "guests": [ |
+ | { | ||
+ | "first_name": "Ivan", | ||
+ | "last_name": "Vasiliev", | ||
+ | "is_child": false | ||
+ | } | ||
+ | ] | ||
} | } | ||
+ | ], | ||
+ | "comments": "Non-smoking room, first floor." | ||
+ | } | ||
+ | |||
+ | |||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода book | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | { | ||
+ | "reservation_id": "155234", | ||
+ | "client_reference_id": "ca115bce-5746-4418-9bba-7715d3751dc9", | ||
+ | "status": "pending" | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</TD></TR></TABLE> | </TD></TR></TABLE> | ||
</div></div><br /> | </div></div><br /> |
Версия 15:39, 26 июня 2023
Содержание
- 1 Введение
- 2 Описание методов
- 2.1 Получение информации обо всех отелях (Hotels)
- 2.2 Получение информации об отеле по его ключу (Hotels)
- 2.3 Получение информации о типах питания (Meals)
- 2.4 Получение информации о типах размещений по отелям или региону с учетом цен (Search)
- 2.5 Получение информации о вариантах размещений по конкретному отелю (Search)
- 2.6 Бронирование (book)
Введение
Сервис отдает запросы посредством API. Сервис позволяет получать информацию об отелях, типах питания, вариантах размещения, бронирования, аннуляции и получения статусов заявок. Для работы сервиса необходимо установить службу Windows.
Описание методов
Получение информации обо всех отелях (Hotels)
Метод возвращает список отелей в формате ndjson в сжатом виде. Формат каждого отеля в результате идентичен результату запроса одного отеля..
- Формат запроса:
- GET .../ostrovok/v1/hotels
- Принимаемые параметры: отсутствуют
- Возвращаемый результат:
- id * – идентификатор отеля
- name * – название отеля
- description – описание отеля
- region_id – идентификатор региона отеля
- geo_coordinates * – координаты отеля
- atitude * – широта, 35.346193
- longitude * – долгота, 33.191205
- address * – адрес отеля, «Bademli Sok. No: 1, Alsancak, Cyprus»
- postal_code – почтовый индекс
- contacts – контактная информация
- phone – телефонный номер
- email – адрес электронной почты
- webpage – сайт
- currency – валюта
- stars – звездность отеля
- rating_certificate_info – подтверждение рейтинга (звездности) отеля
- id – номер документа
- expiration_date * – срок действия
- important_info – важная информация по отелю для гостей
- check_in_instructions – информация по заезду
- check_in_time – время заезда, 14:00
- check_in_before_time – время окончания заезда, 18:00
- check_out_time – время выезда, 12:00
- images – список фотографий отеля
- category – категория фотографии, «Холл»
- url * – сетевой путь к файлу фотографии (например, https://www.test.com/almond/almond-holiday-village-mp-500x249.jpgImage)
- amenities – список наименований удобств, "Beach/pool towels", "Airport transportation"
- rooms – список комнат
- name * – наименование комнаты (тип) (например, «Deluxe Room»)
- description – описание комнаты
- occupancy – максимальное количество человек
- area – площадь комнаты
- bed_groups – список групп размещений
- id * – идентификатор размещения
- name – наименование размещения (например, «double + twin»)
- bed_types – список вариантов спальных мест
- name * – наименование (например, «double»)
- quantity – количество мест
- images – список фотографий комнаты, аналогично с фотографиями отеля
- category – категория фотографии, «Ванная комната»
- url * – путь к файлу фотографии amenities (список наименований удобств, "shower", "tv", "soundproofing")
Вызов метода hotels GET http://localhost:7700/ostrovok/v1/hotels
Возвращаемый результат метода hotels {
"id": "4646",
"name": "Chinar",
"region_id": "5",
"geo_coordinates": {
"latitude": 42.50503279113125,
"longitude": 24.71027970314026
},
"address": "Bademli Sok. No: 1, Alsancak, Cyprus",
"stars": 3,
"images": [
{
"category": "General",
"url": "https://b2b.solvex.bg/web/files/hotels/4646/hotel_images/dbl.jpg"
},
{
"category": "General",
"url": "https://b2b.solvex.bg/web/files/hotels/4646/hotel_images/deluxe apt 1.jpg"
},
],
"amenities": [
"restaurant",
"lobby bar",
"conference hall",
"SPA center",
"Wi-Fi",
"a computer room"
],
"rooms": [
{
"name": "DOUBLE ROOM",
"amenities": [
"2 separate beds / one double bed",
"air conditioning",
"cable TV",
"Wi-Fi",
"direct dial telephone"
]
},
{
"name": "VIP APARTMENT",
"amenities": [
"living room and one bedroom",
"air conditioning",
"cable TV",
"Wi-Fi",
"direct dial telephone",
"mini bar",
]
},
{
"name": "1-BEDROOM APARTMENT",
"amenities": [
"living room and one bedroom",
"air conditioning",
"cable TV",
"Wi-Fi",
"direct dial telephone",
"mini bar",
]
}
]
}
|
Получение информации об отеле по его ключу (Hotels)
Метод возвращает информацию по отелю по ключу отеля в формате ndjson в сжатом виде. Формат каждого отеля в результате идентичен результату запроса одного отеля..
- Формат запроса:
- GET .../ostrovok/v1/hotels/hotel_id
- Принимаемые параметры: отсутствуют
- hotel_id * – идентификатор отеля (ключ)
- Возвращаемый результат:
- id * – идентификатор отеля
- name * – название отеля
- description – описание отеля
- region_id – идентификатор региона отеля
- geo_coordinates * – координаты отеля
- atitude * – широта, 35.346193
- longitude * – долгота, 33.191205
- address * – адрес отеля, «Bademli Sok. No: 1, Alsancak, Cyprus»
- postal_code – почтовый индекс
- contacts – контактная информация
- phone – телефонный номер
- email – адрес электронной почты
- webpage – сайт
- currency – валюта
- stars – звездность отеля
- rating_certificate_info – подтверждение рейтинга (звездности) отеля
- id – номер документа
- expiration_date * – срок действия
- important_info – важная информация по отелю для гостей
- check_in_instructions – информация по заезду
- check_in_time – время заезда, 14:00
- check_in_before_time – время окончания заезда, 18:00
- check_out_time – время выезда, 12:00
- images – список фотографий отеля
- category – категория фотографии, «Холл»
- url * – сетевой путь к файлу фотографии (например, https://www.test.com/almond/almond-holiday-village-mp-500x249.jpgImage)
- amenities – список наименований удобств, "Beach/pool towels", "Airport transportation"
- rooms – список комнат
- name * – наименование комнаты (тип) (например, «Deluxe Room»)
- description – описание комнаты
- occupancy – максимальное количество человек
- area – площадь комнаты
- bed_groups – список групп размещений
- id * – идентификатор размещения
- name – наименование размещения (например, «double + twin»)
- bed_types – список вариантов спальных мест
- name * – наименование (например, «double»)
- quantity – количество мест
- images – список фотографий комнаты, аналогично с фотографиями отеля
- category – категория фотографии, «Ванная комната»
- url * – путь к файлу фотографии amenities (список наименований удобств, "shower", "tv", "soundproofing")
Вызов метода hotels GET http://localhost:7700/ostrovok/v1/hotels/4646
Возвращаемый результат метода hotels {
"id": "4646",
"name": "Chinar",
"region_id": "5",
"geo_coordinates": {
"latitude": 42.50503279113125,
"longitude": 24.71027970314026
},
"address": "Bademli Sok. No: 1, Alsancak, Cyprus",
"stars": 3,
"images": [
{
"category": "General",
"url": "https://b2b.solvex.bg/web/files/hotels/4646/hotel_images/dbl.jpg"
},
{
"category": "General",
"url": "https://b2b.solvex.bg/web/files/hotels/4646/hotel_images/deluxe apt 1.jpg"
},
],
"amenities": [
"restaurant",
"lobby bar",
"conference hall",
"SPA center",
"Wi-Fi",
"a computer room"
],
"rooms": [
{
"name": "DOUBLE ROOM",
"amenities": [
"2 separate beds / one double bed",
"air conditioning",
"cable TV",
"Wi-Fi",
"direct dial telephone"
]
},
{
"name": "VIP APARTMENT",
"amenities": [
"living room and one bedroom",
"air conditioning",
"cable TV",
"Wi-Fi",
"direct dial telephone",
"mini bar",
]
},
{
"name": "1-BEDROOM APARTMENT",
"amenities": [
"living room and one bedroom",
"air conditioning",
"cable TV",
"Wi-Fi",
"direct dial telephone",
"mini bar",
]
}
]
}
|
Получение информации о типах питания (Meals)
Метод возвращает список типов питания в формате ndjson в сжатом виде.
- Формат запроса:
- GET .../ostrovok/v1/meals
- Принимаемые параметры: отсутствуют
- Возвращаемый результат:
- id * – идентификатор типа питания
- name * – наименование типа питания
Вызов метода meals GET http://localhost:7700/ostrovok/v1/meals
Возвращаемый результат метода meals {
"id": "1",
"name": "Full Board"
},
{
"id": "2",
"name": "All Inclusive"
}
|
Получение информации о типах размещений по отелям или региону с учетом цен (Search)
Метод возвращает список типов размещений по отелям или региону с учетом цен.
- Формат запроса:
- POST .../ostrovok/v1/search
- Принимаемые параметры:
- check_in * – дата планируемого заезда
- check_out * – дата выезда
- residency * – страна (рынок)
- guests_groups * – список групп гостей для отбора размещений
- adults – взрослых
- children_ages – список возрастов детей
- region_id – поиск по региону, если задан, то не учитываются ключи отелей
- hotel_ids – ключи отелей для поиска
- Возвращаемый результат:
- hotel_id * – идентификатор отеля
- rates – список вариантов размещения
- id * – идентификатор размещения, формируется сервисом
- price * – цена
- commission – комиссия
- payment_type * – тип платежа (предоплата или по заезду)
- currency * – валюта
- meals – список типов питания
- id * – идентификатор питания
- name * – наименование питания,
- cancellation_policies – список штрафов
- from * – начало действия штрафа
- amount * – величина штрафа
- rooms * – список комнат
- id * – идентификатор, генерируемый системой
- name * – наименование комнаты (например, «Deluxe Room»)
- bed_groups – список групп размещений
- id * – идентификатор размещения
- name – наименование размещения (например, «double + twin»)
- bed_types – список вариантов спальных мест
- name * – наименование (например, «double»)
- quantity – количество мест
Вызов метода search POST http://localhost:7700/ostrovok/v1/search
{
"check_in": "2023-06-01",
"check_out": "2023-06-07",
"residency": "BG",
"guests_groups": [
{
"adults": 2
},
{
"adults": 1
}
],
"hotel_ids": [
"2967"
]
}
Возвращаемый результат метода search {
"hotel_id": "2967",
"rates": [
{
"id": "iNiyYHLAH4p8wJj3wRAskxepfDvz1xZUtXv5tk",
"price": 991.0,
"payment_type": "prepay",
"currency": "EU",
"meals": [
{
"id": "4",
"name": "Half Board"
}
],
"cancellation_policies": [
{
"from": "2023-06-01T00:00:00Z",
"amount": 514.0
}
],
"rooms": [
{
"id": "BDSDaaah",
"name": "Double Room Standard"
},
{
"id": "gX2NoxW1W8",
"name": "SGL Standard-A Sea View"
}
]
},
{
"id": "vwJTArRmsEX8H8yYwtYNdxExixCz1DZTQXJgLd",
"price": 961.0,
"payment_type": "prepay",
"currency": "EU",
"meals": [
{
"id": "2",
"name": "All Inclusive"
}
],
"cancellation_policies": [
{
"from": "2023-06-01T00:00:00Z",
"amount": 634.0
}
],
"rooms": [
{
"id": "RpTXa6oM",
"name": "Double Room Standard"
},
{
"id": "zMp6r6xWdkC",
"name": "SGL Standard-A City View"
}
]
},
{
"id": "vwJTArRmsEX8H8yYwtYNdxExixCz1DZTQXJgLd",
"price": 1141.0,
"payment_type": "prepay",
"currency": "EU",
"meals": [
{
"id": "2",
"name": "All Inclusive"
}
],
"cancellation_policies": [
{
"from": "2023-06-01T00:00:00Z",
"amount": 634.0
}
],
"rooms": [
{
"id": "RpTXa6oM",
"name": "Double Room Standard"
},
{
"id": "RposoDW108",
"name": "SGL Standard-A Standard"
}
]
},
{
"id": "iN8TmwL3HExiwCUAsL3wWDEDiDC4kxIyLx8PRW",
"price": 1561.0,
"payment_type": "prepay",
"currency": "EU",
"meals": [
{
"id": "2",
"name": "All Inclusive"
}
],
"cancellation_policies": [
{
"from": "2023-06-01T00:00:00Z",
"amount": 874.0
}
],
"rooms": [
{
"id": "nDUpoo6V",
"name": "Double Room Sea View"
},
{
"id": "gD6r2pdW18",
"name": "SGL Standard-A Sea View"
}
]
}
]
}
|
Получение информации о вариантах размещений по конкретному отелю (Search)
Метод возвращает список типов размещений по отелям или региону с учетом цен.
- Формат запроса:
- POST .../ostrovok/v1/search/hotel_id
- Принимаемые параметры:
- hotel_id * – ключ отеля
- check_in * – дата планируемого заезда
- check_out * – дата выезда
- guests_groups * – список групп гостей для отбора размещений
- adults – взрослых
- children_ages – список возрастов детей
- Возвращаемый результат:
- hotel_id * – идентификатор отеля
- rates – список вариантов размещения
- id * – идентификатор размещения, формируется сервисом
- price * – цена
- commission – комиссия
- payment_type * – тип платежа (предоплата или по заезду)
- currency * – валюта
- meals – список типов питания
- id * – идентификатор питания
- name * – наименование питания,
- cancellation_policies – список штрафов
- from * – начало действия штрафа
- amount * – величина штрафа
- rooms * – список комнат
- id * – идентификатор, генерируемый системой
- name * – наименование комнаты (например, «Deluxe Room»)
- bed_groups – список групп размещений
- id * – идентификатор размещения
- name – наименование размещения (например, «double + twin»)
- bed_types – список вариантов спальных мест
- name * – наименование (например, «double»)
- quantity – количество мест
Вызов метода search POST http://localhost:7700/ostrovok/v1/search
{
"hotel_id": 2967
"check_in": "2023-06-01",
"check_out": "2023-06-07",
"residency": "BG",
"guests_groups": [
{
"adults": 2
},
{
"adults": 1
}
],
"hotel_ids": [
"2967"
]
}
Возвращаемый результат метода search {
"hotel_id": "2967",
"rates": [
{
"id": "iNiyYHLAH4p8wJj3wRAskxepfDvz1xZUtXv5tk",
"price": 991.0,
"payment_type": "prepay",
"currency": "EU",
"meals": [
{
"id": "4",
"name": "Half Board"
}
],
"cancellation_policies": [
{
"from": "2023-06-01T00:00:00Z",
"amount": 514.0
}
],
"rooms": [
{
"id": "BDSDaaah",
"name": "Double Room Standard"
},
{
"id": "gX2NoxW1W8",
"name": "SGL Standard-A Sea View"
}
]
},
{
"id": "vwJTArRmsEX8H8yYwtYNdxExixCz1DZTQXJgLd",
"price": 961.0,
"payment_type": "prepay",
"currency": "EU",
"meals": [
{
"id": "2",
"name": "All Inclusive"
}
],
"cancellation_policies": [
{
"from": "2023-06-01T00:00:00Z",
"amount": 634.0
}
],
"rooms": [
{
"id": "RpTXa6oM",
"name": "Double Room Standard"
},
{
"id": "zMp6r6xWdkC",
"name": "SGL Standard-A City View"
}
]
},
{
"id": "vwJTArRmsEX8H8yYwtYNdxExixCz1DZTQXJgLd",
"price": 1141.0,
"payment_type": "prepay",
"currency": "EU",
"meals": [
{
"id": "2",
"name": "All Inclusive"
}
],
"cancellation_policies": [
{
"from": "2023-06-01T00:00:00Z",
"amount": 634.0
}
],
"rooms": [
{
"id": "RpTXa6oM",
"name": "Double Room Standard"
},
{
"id": "RposoDW108",
"name": "SGL Standard-A Standard"
}
]
},
{
"id": "iN8TmwL3HExiwCUAsL3wWDEDiDC4kxIyLx8PRW",
"price": 1561.0,
"payment_type": "prepay",
"currency": "EU",
"meals": [
{
"id": "2",
"name": "All Inclusive"
}
],
"cancellation_policies": [
{
"from": "2023-06-01T00:00:00Z",
"amount": 874.0
}
],
"rooms": [
{
"id": "nDUpoo6V",
"name": "Double Room Sea View"
},
{
"id": "gD6r2pdW18",
"name": "SGL Standard-A Sea View"
}
]
}
]
}
|
Бронирование (book)
Метод возвращает список типов размещений по отелям или региону с учетом цен.
- Формат запроса:
- POST .../ostrovok/v1/book
- Принимаемые параметры:
- hotel_id * – ключ отеля
- rate_id * – идентификатор размещения из результатов запроса search
- client_reference_id * – ключ бронирования, сгенерированный провайдером
- reservation_holder * – лицо, бронирующее номер
- first_name * – имя
- last_name * – фамилия
- contact_info * – контактные данные бронирующего
- email * – электронная почта
- phone * – телефон
- price * – цена, по которой бронируют
- rooms * – список, комнаты из результата search, выбранные для бронирования [
- id * – идентификатор комнаты из результатов search
- guests * – список гостей – параметры туристов в комнате
- first_name * – имя гостя
- last_name * – фамилия гостя
- is_child * – ребенок или нет
- comments – комментарии к заезду
- Возвращаемый результат:
- reservation_id * – идентификатор заявки в базе данных
- client_reference_id * – идентификатор заявки, назначенный провайдером
- status * – статус заявки, принята, аннулирована, ожидает.
Вызов метода book POST http://localhost:7700/ostrovok/v1/book
{
"hotel_id": "4456",
"rate_id": "8HiymNB3w4XCw8TmwBms1DeXinDKXQVDFFaa",
"client_reference_id": "ca115bce-5746-4418-9bba-7715d3751dc9",
"reservation_holder": {
"first_name": "Tomas",
"last_name": "Smith",
"is_child": false
},
"contact_info": {
"email": "support@emergingtravel.com",
"phone": "+74992156525"
},
"price": 488.9,
"rooms": [
{
"id": "IfpatDCi8w",
"guests": [
{
"first_name": "Maxim",
"last_name": "Ivanov",
"is_child": false
},
{
"first_name": "Igor",
"last_name": "Petrov",
"is_child": false
}
]
},
{
"id": "ZfD6WDiJwK",
"guests": [
{
"first_name": "Ivan",
"last_name": "Vasiliev",
"is_child": false
}
]
}
],
"comments": "Non-smoking room, first floor."
}
Возвращаемый результат метода book {
"reservation_id": "155234",
"client_reference_id": "ca115bce-5746-4418-9bba-7715d3751dc9",
"status": "pending"
}
|