Frontend API: различия между версиями
(→Вспомогательные функции (utils)) |
|||
(не показано 35 промежуточных версий 5 участников) | |||
Строка 10: | Строка 10: | ||
Формат запросов имеет вид | Формат запросов имеет вид | ||
− | http(s)://host/api/{component}/{module}/{action} + /{parameter1}/{parameter2}... (где параметры необязательны) | + | <pre>http(s)://host/api/{component}/{module}/{action} + /{parameter1}/{parameter2}... (где параметры необязательны)</pre> |
Пример: | Пример: | ||
http://demo.nemo.travel/api/flights/search/formData | http://demo.nemo.travel/api/flights/search/formData | ||
+ | |||
+ | Примечание: для изменения языка в ответах запросов нужно использовать GET параметр <syntaxhighlight lang="text" enclose="none" style="font-size: 1.2em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">apilang=xx</syntaxhighlight>, где <syntaxhighlight lang="text" enclose="none" style="font-size: 1.2em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">xx</syntaxhighlight> это 2-х буквенный код языка. | ||
+ | |||
+ | Пример: http://demo.nemo.travel/api/flights/utils/sunInfo/RTW/2016-06-28T15:00:00/DME/2016-06-28T20:30:00?apilang=en | ||
= Описание запросов = | = Описание запросов = | ||
Строка 148: | Строка 152: | ||
*Response: | *Response: | ||
** [[#flights.utils.sunInfo|flights.utils.sunInfo]] (Информация о солнечной стороне) | ** [[#flights.utils.sunInfo|flights.utils.sunInfo]] (Информация о солнечной стороне) | ||
− | ** [[# | + | ** [[#system.info|system.info]] (Служебная информация) |
== Модуль Отели (hotels) == | == Модуль Отели (hotels) == | ||
Строка 181: | Строка 185: | ||
* Request | * Request | ||
− | ** URI /api/hotels/search/request/{searchId} (получение данных запроса поиска с идентификатором {searchId}) | + | ** URI /api/hotels/search/request/{searchId?} (получение данных запроса поиска с идентификатором {searchId} или создание нового запроса на поиск) |
** POST request="[[#hotels.search.request|hotels.search.request]]" (Параметры запроса поиска) | ** POST request="[[#hotels.search.request|hotels.search.request]]" (Параметры запроса поиска) | ||
* Response: | * Response: | ||
Строка 338: | Строка 342: | ||
== Модуль Заказов (order) == | == Модуль Заказов (order) == | ||
+ | |||
+ | === Модуль аутентификации === | ||
+ | |||
+ | Внимание, для сохранения статуса авторизованного пользователя запросы должны быть отправлены с поддержкой cookie | ||
+ | |||
+ | (Параметр withCredentials = true у объекта XmlHttpRequest в случае использования JS) | ||
+ | |||
+ | ==== Запрос аутентификации пользователя==== | ||
+ | |||
+ | * Request | ||
+ | ** URI /api/order/auth/request | ||
+ | ** POST request="[[#order.auth.request|order.auth.request]]" (Параметры запроса аутентификации) | ||
+ | * Response: | ||
+ | ** [[#order.auth.response|order.auth.response]] (Результат аутентификации) | ||
+ | ** [[#system.info|system.info]] (Служебная информация) | ||
+ | |||
+ | ==== Запрос восстановления пароля==== | ||
+ | |||
+ | * Request | ||
+ | ** URI /api/order/auth/sendPasswordLink | ||
+ | ** POST request="[[#order.auth.sendPasswordLink|order.auth.sendPasswordLink]]" (Параметры запроса восстановления пароля) | ||
+ | * Response: | ||
+ | ** [[#order.auth.sendPasswordLinkResponse|order.auth.sendPasswordLinkResponse]] (Информация о результате операции) | ||
+ | ** [[#system.info|system.info]] (Служебная информация) | ||
+ | |||
+ | ==== Запрос регистрации==== | ||
+ | |||
+ | * Request | ||
+ | ** URI /api/order/auth/registration | ||
+ | ** POST request="[[#order.auth.registration|order.auth.registration]]" (Параметры запроса регистрации) | ||
+ | * Response: | ||
+ | ** [[#order.auth.registrationResponse|order.auth.registrationResponse]] (Информация о результате регистрации) | ||
+ | ** [[#system.info|system.info]] (Служебная информация) | ||
+ | |||
+ | ==== Запрос на получение параметров капчи==== | ||
+ | |||
+ | * Request | ||
+ | ** URI /api/order/auth/captchaParams | ||
+ | * Response: | ||
+ | ** [[#order.auth.captchaParamsResponse|order.auth.captchaParamsResponse]] (Информация о параметрах капчи) | ||
+ | ** [[#system.info|system.info]] (Служебная информация) | ||
+ | |||
+ | ==== Запрос проверки состояния заказа==== | ||
+ | |||
+ | * Request | ||
+ | ** URI /api/order/auth/status | ||
+ | ** POST request="[[#order.auth.status|order.auth.status]]" (Параметры запроса проверки состояния заказа) | ||
+ | * Response: | ||
+ | ** [[#order.auth.statusResponse|order.auth.statusResponse]] (Информация о состоянии заказа) | ||
+ | ** [[#system.info|system.info]] (Служебная информация) | ||
=== Модуль Протокорзина (reminder) === | === Модуль Протокорзина (reminder) === | ||
Строка 628: | Строка 682: | ||
"aroundDates": 0, | "aroundDates": 0, | ||
"serviceClass": "All", | "serviceClass": "All", | ||
− | "airlines": [ | + | "airlines": ["UT"], |
− | |||
− | |||
− | |||
− | |||
"delayed": false | "delayed": false | ||
+ | "priceRefundType": null | ||
} | } | ||
} | } | ||
Строка 743: | Строка 794: | ||
|Предпочитаемые авиакомпании | |Предпочитаемые авиакомпании | ||
|[] | |[] | ||
− | | | + | |Массив IATA кодов авиакомпании |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| | | | ||
Строка 758: | Строка 803: | ||
|boolean | |boolean | ||
|Логический тип | |Логический тип | ||
+ | |- | ||
+ | | | ||
+ | : priceRefundType | ||
+ | |Признак возвратности тарифа, где | ||
+ | : AnyLowest - наименьшие цены (по умолчанию) | ||
+ | : Refundable - наименьшие цены с возможностью безвозмездного возврата | ||
+ | : Both - совокупность поисковых выдач поиска для минимальных и минимальных возвратных цен | ||
+ | |string | ||
+ | |Строка, принимающая одно из значений: | ||
+ | : AnyLowest | ||
+ | : Refundable | ||
+ | : Both | ||
+ | : Null | ||
|- | |- | ||
|} | |} | ||
Строка 2514: | Строка 2572: | ||
</div> | </div> | ||
− | ==== | + | == Отели (hotels) == |
+ | |||
+ | === Поиск (search) === | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;"> | ||
− | ==== | + | ==== Данные формы поиска (formData) ==== |
− | <pre id=" | + | <pre id="hotels.search.formData">hotels.search.formData = </pre> |
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<pre> | <pre> | ||
{ | { | ||
− | + | "citySuggestions": [ | |
− | + | 58165, | |
− | + | 15777 | |
− | + | ], | |
− | + | "maxLimits": { | |
− | + | "guestsCountInRoom": { | |
− | + | "ADT": 4, | |
− | + | "CLD": 4, | |
− | + | "total": 6 | |
− | + | }, | |
− | " | + | "roomsCount": 4, |
− | " | + | "childrenAge": 17 |
− | " | + | }, |
− | " | + | "dateOptions": { |
− | " | + | "minOffset": 0, |
− | + | "maxOffset": 3695, | |
− | + | "maxStayDays": 21 | |
− | + | }, | |
− | </pre> | + | "roomsSelectionTemplates": { |
− | {| border="1" cellpadding="10" cellspacing="0" | + | "useExtendedSelect": true, |
− | !Параметр | + | "fastSelect": [ |
− | !Описание | + | { |
− | !Тип | + | "ADT": 1, |
− | !Значения | + | "CLD": 0, |
− | |- | + | "childAges": [], |
− | | | + | "label": "singleAdult" |
− | |Ограничения на максимальные значения параметров | + | }, |
+ | { | ||
+ | "ADT": 2, | ||
+ | "CLD": 0, | ||
+ | "childAges": [], | ||
+ | "label": "twoAdults" | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | "id": 49825, | ||
+ | "uri": "/api/hotels/search/formData/49825" | ||
+ | } | ||
+ | </pre> | ||
+ | {| border="1" cellpadding="10" cellspacing="0" | ||
+ | !Параметр | ||
+ | !Описание | ||
+ | !Тип | ||
+ | !Значения | ||
+ | |- | ||
+ | |citySuggestions | ||
+ | |Массив идентификаторов городов, которые выводятся для примера на форме поиска | ||
+ | |[] | ||
+ | |... | ||
+ | |- | ||
+ | |maxLimits | ||
+ | |Ограничения на максимальные значения параметров | ||
|{} | |{} | ||
|... | |... | ||
|- | |- | ||
| | | | ||
− | : | + | : guestsCountInRoom |
− | + | |Ограничения на максимальные значения кол-ва человек в комнате | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |- | ||
− | |||
− | |||
|{} | |{} | ||
|... | |... | ||
|- | |- | ||
| | | | ||
− | : | + | :: ADT |
− | | | + | |Максимальное количество взрослых |
|number | |number | ||
|Целое положительное число | |Целое положительное число | ||
|- | |- | ||
| | | | ||
− | : | + | :: CLD |
− | | | + | |Максимальное количество детей |
|number | |number | ||
|Целое положительное число | |Целое положительное число | ||
|- | |- | ||
| | | | ||
− | : | + | :: total |
− | | | + | |Максимальное количество человек в комнате |
− | | | + | |number |
− | | | + | |Целое положительное число |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| | | | ||
− | : | + | : roomsCount |
− | | | + | |Количество комнат |
− | | | + | |number |
− | | | + | |Целое положительное число |
|- | |- | ||
| | | | ||
− | : | + | : childrenAge |
− | | | + | |Максимальный возраст, при котором гость считается ребенком |
+ | |number | ||
+ | |Целое положительное число | ||
+ | |- | ||
+ | |dateOptions | ||
+ | |Ограничения на разрешенные даты для поиска отелей | ||
|{} | |{} | ||
|... | |... | ||
|- | |- | ||
| | | | ||
− | : | + | : minOffset |
− | | | + | |Ближайшая разрешенная дата для поиска отеля (дней от текущего числа) |
− | | | + | |number |
− | | | + | |Целое положительное число |
|- | |- | ||
| | | | ||
− | : | + | : maxOffset |
− | | | + | |Самая дальняя разрешенная дата для поиска отеля (дней от текущего числа) |
− | | | + | |number |
− | | | + | |Целое положительное число |
|- | |- | ||
| | | | ||
− | :: | + | : maxStayDays |
− | | | + | |Максимальное количество ночей, проведенных в отеле |
− | | | + | |number |
− | | | + | |Целое положительное число |
+ | |- | ||
+ | |roomsSelectionTemplates | ||
+ | |Настройки выбора гостей | ||
+ | |{} | ||
+ | |... | ||
+ | |- | ||
+ | | | ||
+ | : useExtendedSelect | ||
+ | | Включить расширенный поиск пассажиров | ||
+ | |boolean | ||
+ | |Логический тип | ||
+ | |- | ||
+ | | | ||
+ | : fastSelect | ||
+ | | Комбинации для быстрого поиска | ||
+ | |[] | ||
+ | |... | ||
+ | |- | ||
+ | | | ||
+ | :: ADT | ||
+ | |Максимальное количество взрослых | ||
+ | |number | ||
+ | |Целое положительное число | ||
+ | |- | ||
+ | | | ||
+ | :: CLD | ||
+ | |Максимальное количество детей | ||
+ | |number | ||
+ | |Целое положительное число | ||
|- | |- | ||
| | | | ||
− | :: | + | :: childAges |
− | | | + | |массив возрастов детей |
− | | | + | |number |
− | | | + | |Целое положительное число |
|- | |- | ||
| | | | ||
− | :: | + | :: label |
− | | | + | |Название комбинации |
− | | | + | |String |
|Строка | |Строка | ||
|- | |- | ||
+ | |id | ||
+ | |Идентификатор поиска | ||
+ | |number | ||
+ | |Целое положительное число | ||
+ | |- | ||
+ | |uri | ||
+ | |URI поиска | ||
+ | |String | ||
+ | |Строка вида "/api/hotels/search/formData/id" | ||
|} | |} | ||
</div> | </div> | ||
</div> | </div> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;"> | ||
− | + | ==== Данные запроса поиска (request) ==== | |
− | + | <pre id="hotels.search.request">hotels.search.request = </pre> | |
− | |||
− | |||
− | |||
− | ==== Данные | ||
− | <pre id="hotels.search. | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<pre> | <pre> | ||
{ | { | ||
− | " | + | "cityId": 63052, |
− | + | "hotelId": 50778, | |
− | + | "checkInDate": "2015-12-16T00:00:00", | |
+ | "checkOutDate": "2015-12-23T00:00:00", | ||
+ | "isDelayed": false, | ||
+ | "rooms": [ | ||
+ | { | ||
+ | "ADT": 1, | ||
+ | "CLD": 1, | ||
+ | "childAges": [ | ||
+ | 10 | ||
+ | ] | ||
+ | } | ||
], | ], | ||
− | + | "id": 49825, | |
− | + | "uri": "/api/hotels/search/request/49825" | |
− | + | } | |
− | + | </pre> | |
− | + | ||
− | + | {| border="1" cellpadding="10" cellspacing="0" | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | "id": 49825, | ||
− | "uri": "/api/hotels/search/ | ||
− | } | ||
− | </pre> | ||
− | {| border="1" cellpadding="10" cellspacing="0" | ||
!Параметр | !Параметр | ||
!Описание | !Описание | ||
Строка 2698: | Строка 2783: | ||
!Значения | !Значения | ||
|- | |- | ||
− | | | + | |cityId |
− | | | + | |Идентификатор города, в котором расположен отель |
− | | | + | |int |
− | | | + | |Целое число |
|- | |- | ||
− | | | + | |hotelId |
− | | | + | |Идентификатор отеля(необязательный параметр) |
− | | | + | |int |
+ | |Целое число | ||
+ | |- | ||
+ | |checkInDate | ||
+ | |Дата прибытия в отель | ||
+ | |String | ||
+ | |Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601) | ||
+ | |- | ||
+ | |checkOutDate | ||
+ | |Дата выселения из отеля | ||
+ | |String | ||
+ | |Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601) | ||
+ | |- | ||
+ | |isDelayed | ||
+ | |Признак отложенного поиска | ||
+ | |boolean | ||
+ | |Логический тип | ||
+ | |- | ||
+ | |rooms | ||
+ | |Информация о номерах | ||
+ | |[] | ||
|... | |... | ||
|- | |- | ||
| | | | ||
− | : | + | : ADT |
− | | | + | |Количество взрослых в номере |
− | | | + | |int |
− | | | + | |Целое число |
|- | |- | ||
| | | | ||
− | : | + | : CLD |
− | | | + | |Количество детей в номере (необязательный параметр, если в номере нет детей) |
− | | | + | |int |
− | |Целое | + | |Целое число |
|- | |- | ||
| | | | ||
− | : | + | : childAges |
− | | | + | |Массив возрастов детей (необязательный параметр, если в номере нет детей) |
+ | |[] | ||
+ | |... | ||
+ | |- | ||
+ | |id | ||
+ | |Идентификатор поиска | ||
|number | |number | ||
|Целое положительное число | |Целое положительное число | ||
|- | |- | ||
− | | | + | |uri |
− | + | |URI поиска | |
− | | | + | |String |
− | | | + | |Строка вида "/api/hotels/search/request/id" |
− | | | ||
|- | |- | ||
− | | | + | |} |
− | : | + | </div> |
− | | | + | </div> |
− | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;"> | |
− | + | ||
+ | ==== Данные ответа на запрос поиска (response) ==== | ||
+ | <pre id="hotels.search.response">hotels.search.response = </pre> | ||
+ | <div class="mw-collapsible-content"> | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "id": 20898 | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | {| border="1" cellpadding="10" cellspacing="0" | ||
+ | !Параметр | ||
+ | !Описание | ||
+ | !Тип | ||
+ | !Значения | ||
|- | |- | ||
− | | | + | |id |
− | + | |Идентификатор поиска, полученный от поставщика | |
− | | | + | |int |
− | | | + | |Целое число |
− | |Целое | ||
|- | |- | ||
− | | | + | |} |
− | + | </div> | |
− | + | </div> | |
− | | | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;"> |
+ | |||
+ | ==== Настройки выдачи результатов (resultData) ==== | ||
+ | <pre id="hotels.search.resultData">hotels.search.resultData = </pre> | ||
+ | <div class="mw-collapsible-content"> | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "showPostFilterHint": true, | ||
+ | "defaultSort": "price", | ||
+ | "showBlocks": { | ||
+ | "useShowCase": true, | ||
+ | "showFlightsOffer": true, | ||
+ | "showMap": true, | ||
+ | "showHotelsWatched": true | ||
+ | }, | ||
+ | "defaultShowVariants": 100, | ||
+ | "showSupplier": true, | ||
+ | "searchTimeout": { | ||
+ | "useSearchTimeout": true, | ||
+ | "warningBeforeSearchTimeout": 540, | ||
+ | "searchTimeout": 600 | ||
+ | }, | ||
+ | "promotionalHotels": [ | ||
+ | 50216654, | ||
+ | 33961705 | ||
+ | ] | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | {| border="1" cellpadding="10" cellspacing="0" | ||
+ | !Параметр | ||
+ | !Описание | ||
+ | !Тип | ||
+ | !Значения | ||
|- | |- | ||
− | | | + | |showPostFilterHint |
− | + | |Показать подсказку к постфильтрам | |
− | | | + | |boolean |
− | | | + | |Логический тип |
− | | | ||
|- | |- | ||
− | | | + | |defaultSort |
− | + | |Тип выбранной по умолчанию сортировки | |
− | | | + | |string |
− | | | + | |Строка, принимающая следующие значения:... |
− | | | ||
|- | |- | ||
− | | | + | |showBlocks |
− | + | |Настройки отображения дополнительных блоков | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |Настройки | ||
|{} | |{} | ||
|... | |... | ||
|- | |- | ||
| | | | ||
− | : | + | : useShowCase |
− | | | + | |Показать витрину |
+ | |boolean | ||
+ | |Логический тип | ||
+ | |- | ||
+ | | | ||
+ | : showFlightsOffer | ||
+ | |Показать блок с предложением перелетов | ||
|boolean | |boolean | ||
|Логический тип | |Логический тип | ||
|- | |- | ||
| | | | ||
− | : | + | : showMap |
− | | | + | |Показать карту |
− | | | + | |boolean |
− | | | + | |Логический тип |
|- | |- | ||
| | | | ||
− | : | + | : showHotelsWatched |
− | | | + | |Показать блок с просмотренными отелями из данных результатов |
+ | |boolean | ||
+ | |Логический тип | ||
+ | |- | ||
+ | |defaultShowVariants | ||
+ | |Число вариантов, показанных по умолчанию | ||
|number | |number | ||
|Целое положительное число | |Целое положительное число | ||
+ | |- | ||
+ | |showSupplier | ||
+ | |Показывать поставщика в результатах поиска | ||
+ | |boolean | ||
+ | |Логический тип | ||
+ | |- | ||
+ | |searchTimeout | ||
+ | |Настройки устаревания результатов поиска | ||
+ | |{} | ||
+ | |... | ||
|- | |- | ||
| | | | ||
− | : | + | : useSearchTimeout |
− | | | + | |Использовать таймер устаревания результатов поиска |
− | | | + | |boolean |
− | | | + | |Логический тип |
|- | |- | ||
| | | | ||
− | : | + | : warningBeforeSearchTimeout |
− | | | + | |Время в секундах, после которого появится предупреждение, что поиск устаревает |
|number | |number | ||
|Целое положительное число | |Целое положительное число | ||
|- | |- | ||
| | | | ||
− | : | + | : searchTimeout |
− | | | + | |Время в секундах, через которое поиск устаревает |
− | |||
− | |||
− | |||
− | |||
− | |||
|number | |number | ||
|Целое положительное число | |Целое положительное число | ||
|- | |- | ||
− | | | + | |promotionalHotels |
− | | | + | |Массив идентификаторов отелей, которые будут рекламироваться |
− | | | + | |[] |
− | | | + | |Массив |
+ | |- | ||
|} | |} | ||
</div> | </div> | ||
Строка 2822: | Строка 2988: | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;"> | ||
− | ==== Данные | + | ==== Данные результатов поиска (results) ==== |
− | <pre id="hotels.search. | + | <pre id="hotels.search.results">hotels.search.results = </pre> |
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<pre> | <pre> | ||
{ | { | ||
− | " | + | "isFinished": true, |
− | " | + | "roomTypes": [ |
− | + | { | |
− | + | "id": 0, | |
− | + | "name": "Superior Double", | |
− | + | "commonName": "Superior Double" | |
+ | }, | ||
+ | { | ||
+ | "id": 1, | ||
+ | "name": "Superior Twin conventionalized", | ||
+ | "commonName": "Superior Twin" | ||
+ | }, | ||
+ | { | ||
+ | "id": 2, | ||
+ | "name": "Junior Suite conventionalized", | ||
+ | "commonName": "Junior Suite" | ||
+ | }, | ||
{ | { | ||
− | " | + | "id": 3, |
− | " | + | "name": "Economy (without windows) Single ", |
− | " | + | "commonName": "Economy Single" |
− | |||
− | |||
} | } | ||
], | ], | ||
− | "id": | + | "roomMeals": [ |
− | + | { | |
− | } | + | "id": 0, |
− | + | "code": "BB", | |
− | + | "name": "Continental Breakfast" | |
− | { | + | }, |
− | + | { | |
− | + | "id": 1, | |
− | + | "code": "BB", | |
− | + | "name": "Buffet Breakfast" | |
− | + | }, | |
− | + | { | |
− | + | "id": 2, | |
− | + | "code": "BB", | |
− | + | "name": "Breakfast" | |
− | + | } | |
− | + | ], | |
− | + | "roomRates": [ | |
− | + | { | |
− | + | "id": 0, | |
− | + | "price": { | |
− | + | "amount": 246.86, | |
− | + | "currency": "EUR" | |
− | + | }, | |
− | + | "isSpecialOffer": false, | |
− | + | "visaSupportProvided": false, | |
− | + | "isNonRefundable": false, | |
− | + | "bookingRemarks": "", | |
− | + | "cancellationRules": [] | |
− | + | }, | |
− | + | { | |
− | + | "id": 1, | |
− | + | "price": { | |
− | + | "amount": 246.86, | |
− | + | "currency": "EUR" | |
− | + | }, | |
− | + | "isSpecialOffer": false, | |
− | + | "visaSupportProvided": false, | |
− | + | "isNonRefundable": false, | |
− | + | "bookingRemarks": "", | |
− | + | "cancellationRules": [] | |
− | + | }, | |
− | : | + | { |
− | + | "id": 2, | |
− | + | "price": { | |
− | + | "amount": 299.75, | |
− | + | "currency": "EUR" | |
− | + | }, | |
− | : | + | "isSpecialOffer": false, |
− | + | "visaSupportProvided": false, | |
− | + | "isNonRefundable": false, | |
− | + | "bookingRemarks": "", | |
− | + | "cancellationRules": [] | |
− | + | }, | |
− | : | + | { |
− | + | "id": 3, | |
− | + | "price": { | |
− | + | "amount": 170.75, | |
− | + | "currency": "EUR" | |
− | + | }, | |
− | + | "isSpecialOffer": false, | |
− | + | "visaSupportProvided": false, | |
− | + | "isNonRefundable": false, | |
− | + | "bookingRemarks": "", | |
− | + | "cancellationRules": [] | |
− | + | } | |
− | + | ], | |
− | + | "roomsGroup": [ | |
− | + | { | |
− | + | "id": 0, | |
− | + | "typeId": 0, | |
− | + | "mealId": 0, | |
− | + | "rateId": 0 | |
− | + | }, | |
− | + | { | |
− | + | "id": 1, | |
− | + | "typeId": 1, | |
− | + | "mealId": 0, | |
− | + | "rateId": 1 | |
− | { | + | }, |
− | + | { | |
+ | "id": 2, | ||
+ | "typeId": 2, | ||
+ | "mealId": 0, | ||
+ | "rateId": 2 | ||
+ | } | ||
+ | ], | ||
+ | "cancellationRules": [], | ||
+ | "hotels": { | ||
+ | "50236286": { | ||
+ | "id": 50236286, | ||
+ | "name": "Danilovskaya", | ||
+ | "roomGroups": [ | ||
+ | { | ||
+ | "searchRoomId": 0, | ||
+ | "roomVariants": [ | ||
+ | 0, | ||
+ | 1, | ||
+ | 2 | ||
+ | ] | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | }, | ||
+ | "info": { | ||
+ | "warnings": [], | ||
+ | "errorCode": null, | ||
+ | "errorMessageEng": null | ||
+ | }, | ||
+ | "id": "167", | ||
+ | "uri": "/api/hotels/search/results/167" | ||
} | } | ||
</pre> | </pre> | ||
Строка 2932: | Строка 3137: | ||
!Значения | !Значения | ||
|- | |- | ||
− | | | + | |isFinished |
− | | | + | |Признак полностью завершенного поиска |
− | | | + | |boolean |
− | | | + | |Логический тип |
|- | |- | ||
− | | | + | |roomTypes |
− | + | |Информация о найденных типах комнат | |
− | + | |[] | |
− | + | |... | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | | | + | | |
− | | | + | : id |
− | | | + | |Идентификатор типа комнаты в рамках данного поиска |
− | | | + | |number |
+ | |Целое положительное число | ||
+ | |- | ||
+ | | | ||
+ | : name | ||
+ | |Название типа комнаты | ||
+ | |string | ||
+ | |Строка | ||
|- | |- | ||
− | | | + | | |
− | | | + | : commonName |
− | |string | + | |Распространенное название комнаты |
− | |Строка | + | |string |
+ | |Строка | ||
|- | |- | ||
− | | | + | |roomMeals |
− | | | + | |Информация о возможных типах питания |
− | | | + | |[] |
|... | |... | ||
|- | |- | ||
| | | | ||
− | : | + | : id |
− | | | + | |Идентификатор типа питания в рамках этого результата поиска |
− | | | + | |number |
− | | | + | |Целое положительное число |
|- | |- | ||
| | | | ||
− | : | + | : name |
− | | | + | |Название типа питания |
− | | | + | |string |
− | | | + | |Строка |
|- | |- | ||
| | | | ||
− | : | + | : code |
− | | | + | |Код типа питания |
− | | | + | |string |
− | | | + | |Строка |
+ | |- | ||
+ | |roomRates | ||
+ | |Информация о стоимости комнат | ||
+ | |[] | ||
+ | |... | ||
|- | |- | ||
| | | | ||
− | : | + | : id |
− | | | + | |Идентификатор тарифа в рамках этого результата поиска |
− | |||
− | |||
− | |||
− | |||
− | |||
|number | |number | ||
|Целое положительное число | |Целое положительное число | ||
|- | |- | ||
− | | | + | | |
− | + | : price | |
− | + | |Контейнер с информацией о валюте | |
− | |||
− | |||
− | |||
− | | | ||
|{} | |{} | ||
|... | |... | ||
|- | |- | ||
| | | | ||
− | : | + | :: amount |
− | | | + | |Сумма базовый цены |
+ | |number | ||
+ | |Дробное число | ||
+ | |- | ||
+ | | | ||
+ | :: currency | ||
+ | |Код валюты базовой цены | ||
+ | |string | ||
+ | |Строка | ||
+ | |- | ||
+ | | | ||
+ | : isSpecialOffer | ||
+ | |является ли данный тариф специальным предложением | ||
|boolean | |boolean | ||
|Логический тип | |Логический тип | ||
|- | |- | ||
| | | | ||
− | : | + | : visaSupportProvided |
− | | | + | |Признак визовой поддержки отеля |
− | |number | + | |boolean |
+ | |Логический тип | ||
+ | |- | ||
+ | | | ||
+ | : isNonRefundable | ||
+ | |Признак возможности возврата | ||
+ | |boolean | ||
+ | |Логический тип | ||
+ | |- | ||
+ | | | ||
+ | : bookingRemarks | ||
+ | |Текст ремарок | ||
+ | |string | ||
+ | |Строка | ||
+ | |- | ||
+ | | | ||
+ | : cancellationRules | ||
+ | |Набор идентификаторов правил отмены | ||
+ | |[] | ||
+ | |Массив целых положительных чисел | ||
+ | |- | ||
+ | |roomsGroup | ||
+ | |Информация о различных вариантах комнат | ||
+ | |{} | ||
+ | |... | ||
+ | |- | ||
+ | | | ||
+ | : id | ||
+ | |Идентификатор комнаты | ||
+ | |number | ||
|Целое положительное число | |Целое положительное число | ||
|- | |- | ||
| | | | ||
− | : | + | : typeId |
− | | | + | |Идентификатор типа комнаты |
|number | |number | ||
|Целое положительное число | |Целое положительное число | ||
|- | |- | ||
− | | | + | | |
− | | | + | : mealId |
− | | | + | |Идентификатор типа питания |
− | | | + | |number |
+ | |Целое положительное число | ||
|- | |- | ||
− | | | + | | |
− | + | : rateId | |
− | + | |Идентификатор тарифа | |
− | + | |number | |
− | + | |Целое положительное число | |
− | + | |- | |
− | + | |cancellationRules | |
− | + | |Информация о правилах отмены | |
− | + | |[] | |
− | + | |... | |
− | + | |- | |
− | + | | | |
− | + | : id | |
− | + | |Идентификатор правила отмены в рамках результата данного поиска | |
− | + | |number | |
− | + | |Целое положительное число | |
− | + | |- | |
− | + | | | |
− | + | : deadLine | |
− | + | |Время, до которого действует данное правило | |
− | + | |string | |
− | + | |Строка | |
− | + | |- | |
− | + | | | |
− | + | : percentValue | |
− | + | |... | |
− | + | |number | |
− | + | |Число | |
− | + | |- | |
− | + | | | |
− | + | : absoluteValue | |
− | + | |... | |
− | + | |number | |
− | + | |Число | |
− | + | |- | |
− | + | |hotels | |
− | + | |Информация об отелях | |
− | + | |{} | |
− | + | |... | |
− | + | |- | |
− | + | | | |
− | + | : id | |
− | + | |Идентификатор отеля | |
− | + | |number | |
− | + | |Целое положительное число | |
− | + | |- | |
− | + | | | |
− | + | : name | |
− | + | |Название отеля | |
− | + | |string | |
− | + | |Строка | |
− | + | |- | |
− | + | | | |
− | + | : roomGroups | |
− | + | |Информация о комнатах в отеле | |
− | + | |[] | |
− | + | |... | |
− | + | |- | |
− | + | | | |
− | + | :: searchRoomId | |
− | + | |Идентификатор комнаты в отеле в рамках данного поиска | |
− | + | |number | |
− | + | |Целое число | |
− | + | |- | |
− | + | | | |
− | + | :: roomVariants | |
− | + | | Массив идентификаторов комнат - ссылки на roomsGroup | |
− | + | |[] | |
− | + | | | |
− | + | |- | |
− | + | |info | |
− | + | |Информация об успешности/неуспешности поиска | |
− | + | |{} | |
− | + | | | |
− | + | |- | |
− | + | | | |
− | + | : errorCode | |
− | + | |Код ошибки | |
− | + | |number | |
− | + | |Число, может иметь следующие значения: | |
− | + | : 404 ('No results') | |
− | + | : 410 ('Invalid SearchId') | |
− | + | : 500 ('System Error') | |
− | + | : null | |
− | + | |- | |
− | + | | | |
− | + | : errorMessageEng | |
− | + | |Сообщение об ошибке | |
− | + | |string | |
− | + | |Строка, принимающая следующие значения: | |
− | + | : 'No results' | |
− | + | : 'Invalid SearchId' | |
− | + | : 'System Error' | |
− | + | : null | |
− | + | |- | |
− | + | | | |
− | " | + | : warnings |
− | " | + | |Массив предупреждений |
− | " | + | |[] |
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | </div> | ||
+ | </div> | ||
+ | |||
+ | === Статика отелей (staticDataInfo) === | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;"> | ||
+ | ==== Данные о статике отелей (staticDataInfo) ==== | ||
+ | <pre id="hotels.staticDataInfo">hotels.staticDataInfo = </pre> | ||
+ | <div class="mw-collapsible-content"> | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "countries": [ | ||
+ | { | ||
+ | "id": 178, | ||
+ | "name": "Russia", | ||
+ | "isoCode": "RU" | ||
} | } | ||
], | ], | ||
− | " | + | "regions": [ |
{ | { | ||
− | "id": | + | "id": 3000046, |
− | " | + | "name": "Москва", |
− | + | "countryId": 178 | |
− | " | + | } |
− | }, | + | ], |
+ | "cities": [ | ||
{ | { | ||
− | "id": | + | "id": 4754, |
− | " | + | "name": "Москва", |
− | " | + | "countryId": 178, |
− | " | + | "regionId": 3000046, |
− | }, | + | "latitude": null, |
+ | "longitude": null | ||
+ | } | ||
+ | ], | ||
+ | "resorts": [ | ||
{ | { | ||
− | "id": | + | "id": 1315, |
− | " | + | "name": "SHERSTON", |
− | + | "cityId": 4754 | |
− | " | ||
} | } | ||
], | ], | ||
− | " | + | "hotels": [ |
− | + | { | |
− | + | "id": 163157, | |
− | " | + | "name": "SHERSTON", |
− | " | + | "checkInTime": null, |
− | " | + | "checkOutTime": null, |
− | + | "starRating": 5, | |
− | + | "category": null, | |
− | + | "cityId": 4754, | |
− | + | "resortId": null, | |
− | + | "district": "", | |
− | + | "posLatitude": null, | |
+ | "posLongitude": null, | ||
+ | "description": null, | ||
+ | "photos": [ | ||
+ | "http://nt.natecnia.com/NT/photos/HOT/ES/best.western.dante.jumbotours/c_foto1173177694944.jpg", | ||
+ | "http://nt.natecnia.com/NT/photos/HOT/ES/best.western.dante.jumbotours/c_foto1173177491528.jpg" | ||
+ | ], | ||
+ | "mainPhotoId": 0, | ||
+ | "addresses": [ | ||
+ | "MALLORCA 181", | ||
+ | "MALLORCA 182" | ||
+ | ], | ||
+ | "features": { | ||
+ | "CheckIn": { | ||
+ | "typeName": "Круглосуточная регистрация", | ||
+ | "featuresArray": [ | ||
+ | "24h Reception", | ||
+ | "Early check-in" | ||
] | ] | ||
} | } | ||
− | + | "Smoking": { | |
− | + | "typeName": "Курение", | |
− | + | "featuresArray": [ | |
− | + | "Non Smoking Rooms" | |
− | + | ] | |
− | + | }, | |
− | + | "Internet": { | |
− | + | "typeName": "Интернет", | |
− | + | "featuresArray": [ | |
− | + | "Internet Corner ($)", | |
− | } | + | "High- Speed Wireless Internet Access", |
− | + | "Wi-Fi (Public Areas)", | |
− | + | "High Speed Internet Access" | |
− | + | ] | |
− | + | }, | |
− | + | "ClimateControl": { | |
− | + | "typeName": "Климат-контроль", | |
− | + | "featuresArray": [ | |
− | + | "Air Conditioning" | |
− | + | ] | |
− | + | }, | |
− | + | "Safe": { | |
− | + | "typeName": "Сейф", | |
− | + | "featuresArray": [ | |
− | + | "Safe" | |
− | + | ] | |
− | + | } | |
− | + | }, | |
− | + | "popularFeatures": [ | |
− | + | "ExpressCheckIn", | |
− | : | + | "WiFi", |
− | + | "ClimateControl" | |
− | + | ], | |
− | + | "distances": { | |
− | + | "Subway Station": { | |
− | + | "typeName": "Станция метро", | |
− | : | + | "distancesArray": [ |
− | + | { | |
− | + | "name": "Smolenskaya - Arbatsko-Pokrovskaya line", | |
− | + | "isClose": false, | |
− | + | "value": { | |
− | + | "distance": 0.3, | |
− | : | + | "measurement": "км", |
− | + | "transportType": null | |
− | + | } | |
− | + | }, | |
− | + | { | |
− | + | "name": "smolenskaya", | |
− | + | "isClose": false, | |
− | + | "value": { | |
− | + | "distance": 0.3, | |
− | + | "measurement": "км", | |
− | + | "transportType": null | |
− | : | + | } |
− | + | } | |
− | + | ] | |
− | + | }, | |
− | + | "Bus Station": { | |
− | + | "typeName": "Автобусная станция", | |
− | : | + | "distancesArray": [ |
− | + | { | |
− | + | "name": "", | |
− | + | "isClose": true, | |
− | + | "value": null | |
− | + | } | |
− | : | + | ] |
− | + | }, | |
− | + | }, | |
− | + | "customerRating": { | |
− | + | "room": 9.1, | |
− | + | "facilities": 7.7, | |
− | + | "cleanness": 8.9, | |
− | + | "food": 9.5, | |
− | + | "staff": 8.2, | |
− | + | "checkIn": 9.1, | |
− | | | + | "valueForMoney": 9.6 |
− | + | }, | |
− | + | "averageCustomerRating": { | |
− | + | "value": 8.6, | |
− | + | "description": "Хорошо" | |
− | |- | + | }, |
− | | | + | "usersOpinionInfo": { |
− | + | "opinionsCount": 2, | |
− | | | + | "opinions": [ |
− | | | + | { |
+ | "userName": "Варя", | ||
+ | "mark": 1, | ||
+ | "text": "Всё плохо" | ||
+ | }, | ||
+ | { | ||
+ | "userName": "Бронислав", | ||
+ | "mark": 5, | ||
+ | "text": "Всё отлично!" | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | } | ||
+ | ], | ||
+ | "popularHotelsFeatures": { | ||
+ | "ExpressCheckIn": "Круглосуточная регистрация", | ||
+ | "ConferenceFacilities": "услуги для проведения конференций", | ||
+ | "Restaurant": "Ресторан", | ||
+ | "Bar": "Бар", | ||
+ | "Parking": "Парковка", | ||
+ | "Children": "Услуги для клиентов с детьми", | ||
+ | "WiFi": "WiFi", | ||
+ | "BathroomAmenities": "Услуги для водных процедур", | ||
+ | "Elevator": "Лифт", | ||
+ | "ClimateControl": "Климат-контроль" | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | {| border="1" cellpadding="10" cellspacing="0" | ||
+ | !Параметр | ||
+ | !Описание | ||
+ | !Тип | ||
+ | !Значения | ||
+ | |- | ||
+ | |countries | ||
+ | |Массив стран | ||
+ | |[] | ||
|... | |... | ||
|- | |- | ||
| | | | ||
− | : | + | : id |
− | | | + | |Идентификатор страны в системе Немо2 |
|number | |number | ||
− | | | + | |Целое положительное число |
|- | |- | ||
| | | | ||
− | : | + | : name |
− | | | + | |Название страны |
− | | | + | |String |
|Строка | |Строка | ||
|- | |- | ||
| | | | ||
− | : | + | : isoCode |
− | | | + | |ISO код страны |
− | | | + | |String |
− | | | + | |Строка из 2 букв(ISO 3166-1 alpha-2) |
|- | |- | ||
− | | | + | |regions |
− | + | |Массив регионов стран | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | | | ||
|[] | |[] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
|... | |... | ||
|- | |- | ||
| | | | ||
: id | : id | ||
− | |Идентификатор | + | |Идентификатор региона в системе Немо2 |
|number | |number | ||
|Целое положительное число | |Целое положительное число | ||
|- | |- | ||
| | | | ||
− | : | + | : name |
− | | | + | |Название региона |
− | | | + | |String |
− | | | + | |Строка |
|- | |- | ||
| | | | ||
− | : | + | : countryId |
− | | | + | |идентификатор страны в системе Немо2, которой принадлежит регион |
|number | |number | ||
|Целое положительное число | |Целое положительное число | ||
|- | |- | ||
− | | | + | |cities |
− | + | |Массив городов | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | | | ||
|[] | |[] | ||
|... | |... | ||
Строка 3353: | Строка 3618: | ||
| | | | ||
: id | : id | ||
− | |Идентификатор | + | |Идентификатор города в системе Немо2 |
|number | |number | ||
|Целое положительное число | |Целое положительное число | ||
|- | |- | ||
| | | | ||
− | : | + | : name |
− | | | + | |Название города |
− | | | + | |String |
|Строка | |Строка | ||
|- | |- | ||
| | | | ||
− | : | + | : countryId |
− | | | + | |идентификатор страны в системе Немо2, которой принадлежит регион |
+ | |number | ||
+ | |Целое положительное число | ||
+ | |- | ||
+ | | | ||
+ | : regionId | ||
+ | |идентификатор региона в системе Немо2, которому принадлежит город | ||
|number | |number | ||
− | | | + | |Целое положительное число |
|- | |- | ||
| | | | ||
− | : | + | : latitude |
− | | | + | |Географическая широта города |
|number | |number | ||
|Число | |Число | ||
|- | |- | ||
− | | | + | | |
− | |Информация | + | : longitude |
− | | | + | |Географическая долгота города |
+ | |number | ||
+ | |Число | ||
+ | |- | ||
+ | |resorts | ||
+ | |Информация о курортах | ||
+ | |[] | ||
|... | |... | ||
|- | |- | ||
| | | | ||
: id | : id | ||
− | |Идентификатор | + | |Идентификатор курорта в системе Немо2 |
|number | |number | ||
|Целое положительное число | |Целое положительное число | ||
Строка 3388: | Строка 3665: | ||
| | | | ||
: name | : name | ||
− | |Название | + | |Название курорта |
− | | | + | |String |
|Строка | |Строка | ||
|- | |- | ||
| | | | ||
− | : | + | : cityId |
− | |Информация | + | |Идентификатор города в системе Немо2, в котором находится курорт |
+ | |number | ||
+ | |Целое положительное число | ||
+ | |- | ||
+ | |hotels | ||
+ | |Информация об отелях | ||
|[] | |[] | ||
|... | |... | ||
|- | |- | ||
| | | | ||
− | : | + | : id |
− | |Идентификатор | + | |Идентификатор отеля в системе Немо2 |
|number | |number | ||
− | |Целое число | + | |Целое положительное число |
|- | |- | ||
| | | | ||
− | : | + | : name |
− | | | + | |Название отеля |
− | | | + | |String |
− | | | + | |Строка |
|- | |- | ||
− | |||
− | |||
− | |||
| | | | ||
+ | : checkInTime | ||
+ | |Время заезда | ||
+ | |String | ||
+ | |Строка | ||
|- | |- | ||
| | | | ||
− | : | + | : checkOutTime |
− | | | + | |Время выезда |
+ | |String | ||
+ | |Строка | ||
+ | |- | ||
+ | | | ||
+ | : category | ||
+ | |Тип отеля | ||
+ | |String | ||
+ | |Строка | ||
+ | |- | ||
+ | | | ||
+ | : cityId | ||
+ | |Идентификатор города в системе Немо2, в котором находится отель | ||
|number | |number | ||
− | | | + | |Целое положительное число |
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| | | | ||
− | : | + | : resortId |
− | | | + | |идентификатор курорта в массиве resorts |
− | | | + | |number |
− | | | + | |Целое положительное число |
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| | | | ||
− | : | + | : district |
− | | | + | |название района, в котором расположен отель |
− | | | + | |String |
+ | |Строка | ||
+ | |- | ||
| | | | ||
+ | : posLatitude | ||
+ | |Географическая широта отеля | ||
+ | |number | ||
+ | |Число | ||
|- | |- | ||
− | | | + | | |
− | + | : posLongitude | |
− | + | |Географическая долгота отеля | |
− | + | |number | |
− | + | |Число | |
− | + | |- | |
− | + | | | |
− | + | : checkOutTime | |
− | + | |Время выезда | |
− | + | |String | |
− | + | |Строка | |
− | + | |- | |
− | + | | | |
− | + | : starRating | |
− | + | |Количество звезд | |
− | + | |number | |
− | + | |Целое число от 0 до 5 | |
− | + | |- | |
− | + | | | |
− | + | : description | |
− | + | |Описание отеля | |
− | + | |String | |
− | + | |Строка | |
− | + | |- | |
− | + | | | |
− | + | : photos | |
− | + | |Массив фотографий отеля | |
− | + | |[] | |
− | + | |... | |
− | + | |- | |
− | + | | | |
− | + | : mainPhotoId | |
− | + | |Идентификатор главного изображения | |
− | + | |number | |
− | + | |Целое число | |
− | + | |- | |
− | + | | | |
− | + | : features | |
− | + | |Информация об услугах, предоставляемых в отеле | |
− | + | |{} | |
− | + | |... | |
− | + | |- | |
− | + | | | |
− | + | :: typeName | |
− | + | |Идентификатор услуги(название группы услуг) | |
− | + | |String | |
− | + | |Строка | |
− | + | |- | |
− | + | | | |
− | + | :: featuresArray | |
− | + | |Массив подробных описаний услуги | |
− | + | |{} | |
− | + | |Массив строк | |
− | + | |- | |
− | + | | | |
− | + | : popularFeatures | |
− | + | |Список популярных услуг, предоставляемых отелем | |
− | + | |[] | |
− | + | |Массив | |
− | + | |- | |
− | + | | | |
− | + | : distances | |
− | + | |Информация о расстояниях от отеля до важных объектов | |
− | + | |{} | |
− | + | |Объект | |
− | + | |- | |
− | + | | | |
− | + | :: typeName | |
− | + | |Название типа объекта | |
− | + | |String | |
− | + | |Строка | |
− | + | |- | |
− | + | | | |
− | + | :: distancesArray | |
− | + | |Массив объектов данного типа | |
− | + | |{} | |
− | + | |Объект | |
− | + | |- | |
− | + | | | |
− | + | ::: name | |
− | + | |Название объекта | |
− | + | |String | |
− | + | |Строка | |
− | + | |- | |
− | + | | | |
− | + | ::: isClose | |
− | + | |Признак того, что объект находится очень близко к отелю. Если имеет значение true, value=null | |
− | + | |boolean | |
− | + | |логический тип | |
− | + | |- | |
− | + | | | |
− | + | ::: value | |
− | + | |Информация о расстоянии/времени пути. Если она имеется, isClose=false | |
− | + | |{} | |
− | + | |... | |
− | + | |- | |
− | + | | | |
− | + | :::: distance | |
− | + | |Число единиц измерения | |
− | + | |number | |
− | + | |Число | |
− | + | |- | |
− | + | | | |
− | + | :::: measurement | |
− | + | |Единица измерения | |
− | + | |String | |
− | + | |Строка | |
− | + | |- | |
− | + | | | |
− | + | :::: transportType | |
− | + | |Тип способа перемещения, для которого актуальны distance и measurement | |
− | + | |{} | |
− | + | |... | |
− | + | |- | |
− | + | | | |
− | + | : customerRating | |
− | + | |Оценка отеля посетителями | |
− | + | |[] | |
− | + | |... | |
− | + | |- | |
− | + | | | |
− | + | :: room | |
− | + | |Оценка комнаты | |
− | + | |number | |
− | + | |Число | |
− | + | |- | |
− | + | | | |
− | + | :: facilities | |
− | + | |Оценка бытовых удобств | |
− | + | |number | |
− | + | |Число | |
− | + | |- | |
− | + | | | |
− | + | :: cleanness | |
− | + | |Оценка чистоты | |
− | + | |number | |
− | + | |Число | |
− | + | |- | |
− | + | | | |
− | + | :: food | |
− | + | |Оценка еды | |
− | + | |number | |
− | + | |Число | |
− | + | |- | |
− | + | | | |
− | + | :: staff | |
− | + | |Оценка обслуживающего персонала | |
− | + | |number | |
− | + | |Число | |
− | + | |- | |
− | + | | | |
− | + | :: checkIn | |
− | + | |Оценка регистрации | |
− | + | |number | |
− | + | |Число | |
− | + | |- | |
− | + | | | |
− | + | :: valueForMoney | |
− | + | |Оценка соотношения цены и качества | |
− | + | |number | |
− | + | |Число | |
− | + | |- | |
− | + | | | |
− | + | : averageCustomerRating | |
− | + | |Данные о средней оценке отеля посетителями | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |- | ||
− | | | ||
− | | | ||
|[] | |[] | ||
|... | |... | ||
|- | |- | ||
| | | | ||
− | : | + | :: value |
− | | | + | |Оценка |
|number | |number | ||
− | | | + | |Число |
− | |- | + | |- |
| | | | ||
− | : | + | :: description |
− | | | + | |Текствое описание(при оценке выше 7) |
− | | | + | |number |
− | | | + | |Число |
+ | |- | ||
+ | | | ||
+ | : usersOpinionInfo | ||
+ | |Информация об отзывах пользователей | ||
+ | |{} | ||
+ | |null, если нет отзывов | ||
|- | |- | ||
| | | | ||
− | : | + | :: opinionsCount |
− | | | + | |Количество отзывов |
− | | | + | |number |
− | | | + | |Число |
|- | |- | ||
− | | | + | | |
− | |Массив | + | :: opinions |
+ | |Массив отзывов | ||
|[] | |[] | ||
|... | |... | ||
|- | |- | ||
| | | | ||
− | : | + | ::: userName |
− | + | |Имя пользователя, оставившего отзыв | |
− | + | |string | |
− | |||
− | |||
− | |||
− | : | ||
− | | | ||
− | | | ||
|Строка | |Строка | ||
|- | |- | ||
| | | | ||
− | : | + | ::: mark |
− | | | + | |Оценка |
|number | |number | ||
− | | | + | |Число |
|- | |- | ||
− | + | | | |
− | + | ::: text | |
− | + | |Текст отзыва | |
− | + | |string | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | | | ||
− | : | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | : | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | : | ||
− | | | ||
− | | | ||
|Строка | |Строка | ||
+ | |- | ||
+ | |popularHotelsFeatures | ||
+ | |Список популярных услуг, которые встречаются в данной выдаче | ||
+ | |Объект вида "Ключ" => "Локальное название" | ||
+ | |{} | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Полный список популярных услуг''' | ||
+ | |||
+ | Bar | ||
+ | BathroomAmenities | ||
+ | BusinessCenter | ||
+ | ConferenceFacilities | ||
+ | Children | ||
+ | ClimateControl | ||
+ | DisabledFacilities | ||
+ | Elevator | ||
+ | ExpressCheckIn | ||
+ | Gym | ||
+ | Laundry | ||
+ | Meal | ||
+ | Parking | ||
+ | PetsAllowed | ||
+ | Pool | ||
+ | Restaurant | ||
+ | SPA | ||
+ | Transfer | ||
+ | WiFi | ||
+ | </div> | ||
+ | </div> | ||
+ | |||
+ | === Автокомплит отелей (autocomplete) === | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;"> | ||
+ | ==== Автокомлит отелей (autocomplete) ==== | ||
+ | <pre id="hotels.autocomplete">hotels.autocomplete = </pre> | ||
+ | <div class="mw-collapsible-content"> | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "autocomplete": { | ||
+ | "cities": [{ | ||
+ | "id": 4754, | ||
+ | "name": "Москва", | ||
+ | "country_code": "RU", | ||
+ | "hotelsCount": 280, | ||
+ | "country_name": "Россия" | ||
+ | }, { | ||
+ | "id": 14997, | ||
+ | "name": "Моссель-Бей", | ||
+ | "country_code": "ZA", | ||
+ | "hotelsCount": 9, | ||
+ | "country_name": "Южная Африка" | ||
+ | }, { | ||
+ | "id": 12838, | ||
+ | "name": "Моссман", | ||
+ | "country_code": "AU", | ||
+ | "hotelsCount": 1, | ||
+ | "country_name": "Австралия" | ||
+ | }], | ||
+ | "hotels": [{ | ||
+ | "id": 50577298, | ||
+ | "name": "Mosaic", | ||
+ | "category": 4, | ||
+ | "country_code": "TR", | ||
+ | "cityName": "Istanbul", | ||
+ | "country_name": "Турция" | ||
+ | }, { | ||
+ | "id": 50410601, | ||
+ | "name": "Mosaic House", | ||
+ | "category": 4, | ||
+ | "country_code": "CZ", | ||
+ | "cityName": "Prague", | ||
+ | "country_name": "Чешская Республика" | ||
+ | }, { | ||
+ | "id": 50575348, | ||
+ | "name": "Mosaic House", | ||
+ | "category": 4, | ||
+ | "country_code": "CZ", | ||
+ | "cityName": "Prague", | ||
+ | "country_name": "Чешская Республика" | ||
+ | }], | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </pre> | ||
+ | {| border="1" cellpadding="10" cellspacing="0" | ||
+ | !Параметр | ||
+ | !Описание | ||
+ | !Тип | ||
+ | !Значения | ||
|- | |- | ||
− | | | + | |autocomplete |
− | + | |Блок ответа автокомлита | |
− | | | + | |[] |
− | | | + | |... |
− | | | ||
|- | |- | ||
| | | | ||
− | : | + | : cities |
− | | | + | |Массив городов для автокомплита |
− | | | + | |[] |
− | | | + | |... |
+ | |- | ||
+ | | | ||
+ | :: id | ||
+ | |Номер города | ||
+ | |integer | ||
+ | |... | ||
|- | |- | ||
| | | | ||
− | : | + | :: name |
− | | | + | |Название города |
|String | |String | ||
|Строка | |Строка | ||
|- | |- | ||
| | | | ||
− | : | + | :: country_сode |
− | | | + | |Код страны |
− | | | + | |String |
− | | | + | |В формате ISO2 |
|- | |- | ||
| | | | ||
− | : | + | :: hotelsCount |
− | | | + | |Количество отелей в городе |
− | | | + | |integer |
− | | | + | |... |
|- | |- | ||
| | | | ||
− | : | + | :: country_name |
− | | | + | |Название страны |
|String | |String | ||
|Строка | |Строка | ||
|- | |- | ||
| | | | ||
− | : | + | : hotels |
− | | | + | |Массив отелей |
− | | | + | |[] |
− | | | + | |... |
|- | |- | ||
− | + | :: id | |
− | : | + | |Номер отеля |
− | | | + | |integer |
− | | | + | |... |
− | | | ||
|- | |- | ||
| | | | ||
− | : | + | :: name |
− | | | + | |Название города |
|String | |String | ||
|Строка | |Строка | ||
|- | |- | ||
| | | | ||
− | : | + | :: category |
− | | | + | |Категория отеля |
− | | | + | |integer |
− | | | + | |Числа от 1 до 5, включительно |
|- | |- | ||
| | | | ||
− | : | + | :: country_code |
− | | | + | |Код страны |
|String | |String | ||
− | | | + | |В формате ISO2 |
|- | |- | ||
| | | | ||
− | : | + | :: cityName |
− | | | + | |Название города |
− | | | + | |String |
− | | | + | |Строка |
|- | |- | ||
| | | | ||
− | : | + | :: country_name |
− | | | + | |Название страны |
− | | | + | |String |
− | | | + | |Строка |
− | |- | + | |- |
− | | | + | |} |
− | : | + | </div> |
− | | | + | </div> |
− | | | + | |
− | | | + | == Путеводитель (guide) == |
+ | |||
+ | === Страны (countries) === | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px"> | ||
+ | ==== Данные по коду страны ISO 3166-1 alpha-2 (CODE) ==== | ||
+ | <pre id="guide.countries.CODE">guide.countries.CODE = </pre> | ||
+ | <div class="mw-collapsible-content"> | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "code": "RU", | ||
+ | "name": "Россия", | ||
+ | "nameEn": "Russia" | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | {| border="1" cellpadding="10" cellspacing="0" | ||
+ | !Параметр | ||
+ | !Описание | ||
+ | !Тип | ||
+ | !Значения | ||
+ | |- | ||
+ | |RU | ||
+ | |Код страны | ||
+ | |string | ||
+ | |Строка из 2 латинских букв | ||
|- | |- | ||
− | | | + | |name |
− | + | |Название страны | |
− | | | + | |string |
− | | | ||
|Строка | |Строка | ||
|- | |- | ||
− | | | + | |nameEn |
− | + | |Английское название страны | |
− | | | + | |string |
− | |{} | + | |Строка |
− | | | + | |} |
+ | </div> | ||
+ | </div> | ||
+ | |||
+ | === Города(cities) === | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px"> | ||
+ | ==== Данные по идентификатору города ==== | ||
+ | <pre id="guide.cities.ID">guide.cities.ID = </pre> | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <pre> | ||
+ | { | ||
+ | "IATA": "MOW", | ||
+ | "name": "Москва", | ||
+ | "nameEn": "Moscow", | ||
+ | "countryCode": "RU", | ||
+ | "id": 58165 | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | {| border="1" cellpadding="10" cellspacing="0" | ||
+ | !Параметр | ||
+ | !Описание | ||
+ | !Тип | ||
+ | !Значения | ||
|- | |- | ||
− | | | + | |IATA |
− | + | |Код города | |
− | | | + | |string |
− | | | + | |Строка из 3 букв латинского алфавита |
− | | | ||
|- | |- | ||
− | | | + | |name |
− | + | |Название города | |
− | + | |string | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |Название | ||
− | | | ||
|Строка | |Строка | ||
|- | |- | ||
− | | | + | |nameEn |
− | + | |Английское название города | |
− | + | |string | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | | | ||
− | | | ||
|Строка | |Строка | ||
|- | |- | ||
− | | | + | |countryCode |
− | + | |Код страны | |
− | | | + | |string |
− | | | + | |Строка из 2 букв(ISO 3166-1 alpha-2) |
− | | | ||
|- | |- | ||
− | | | + | |id |
− | + | |Код города | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | | | ||
|number | |number | ||
|Число | |Число | ||
+ | |} | ||
+ | </div> | ||
+ | </div> | ||
+ | |||
+ | === Воздушные суда (aircrafts) === | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px"> | ||
+ | ==== Данные по коду воздушного судна==== | ||
+ | <pre id="guide.aircrafts.CODE">guide.aircrafts.CODE = </pre> | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <pre> | ||
+ | { | ||
+ | "id": 108, | ||
+ | "name": "Yk 42", | ||
+ | "nameEn": "YK 42", | ||
+ | "manufacture": "ОКБ Яковлева", | ||
+ | "originCountries": [ | ||
+ | "RU" | ||
+ | ], | ||
+ | "distanceType": "medium_range", | ||
+ | "fuselageType": "narrowbody", | ||
+ | "capacity": "102 - 120", | ||
+ | "cruiseSpeed": "730", | ||
+ | "isTurbineAirctaft": false, | ||
+ | "isHomeAirctaft": false, | ||
+ | "image": { | ||
+ | "image": "/static/images/guide_aircraft/images_php154_0.jpg", | ||
+ | "icon": "/static/images/guide_aircraft_icon/images_php154_0.jpg", | ||
+ | "height": 500, | ||
+ | "width": 743 | ||
+ | }, | ||
+ | "map_image": { | ||
+ | "image": "/static/images/guide_aircraft/map_image_php155_0.jpg", | ||
+ | "icon": "/static/images/guide_aircraft_icon/map_image_php155_0.jpg", | ||
+ | "height": 200, | ||
+ | "width": 500 | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | {| border="1" cellpadding="10" cellspacing="0" | ||
+ | !Параметр | ||
+ | !Описание | ||
+ | !Тип | ||
+ | !Значения | ||
|- | |- | ||
− | | | + | |id |
− | + | |Идентификатор воздушного судна | |
− | | | + | |number |
− | | | + | |число |
− | |Строка | + | |- |
− | |- | + | |name |
− | | | + | |Название авиакомпании |
− | + | |string | |
− | | | + | |Строка |
− | | | + | |- |
− | | | + | |nameEn |
+ | |Английское название авиакомпании | ||
+ | |string | ||
+ | |Строка | ||
+ | |- | ||
+ | |manufacture | ||
+ | |Компания-производитель | ||
+ | |string | ||
+ | |Строка | ||
|- | |- | ||
− | | | + | |originCountries |
− | + | |Набор IATA-кодов стран-производителей | |
− | | | ||
|[] | |[] | ||
|... | |... | ||
|- | |- | ||
− | | | + | |distanceType |
− | :: | + | |Магистральность |
− | | | + | |string |
− | | | + | |Строка, принимающая следующие значения: |
− | | | + | : short_range(Ближнемагистральный) |
− | | | + | : medium_range(Среднемагистральный) |
− | | | + | : long_range(Дальнемагистральный) |
− | :: | + | |
− | | | + | |- |
+ | |fuselageType | ||
+ | |Фюзеляжность | ||
+ | |string | ||
+ | |Строка, принимающая следующие значения: | ||
+ | : narrowbody(Узкофюзеляжный) | ||
+ | : widebody(Широкофюзеляжный) | ||
+ | |- | ||
+ | |capacity | ||
+ | |Вместимость | ||
+ | |string | ||
+ | |Строка вида (100 - 200) | ||
+ | |- | ||
+ | |cruiseSpeed | ||
+ | |Крейсерская скорость (км/ч) | ||
|number | |number | ||
− | | | + | |Целое положительное число |
− | |- | + | |- |
+ | |isTurbineAirctaft | ||
+ | |Турбовинтовой | ||
+ | |boolean | ||
+ | |Логический тип | ||
+ | |- | ||
+ | |isHomeAirctaft | ||
+ | |Отечественный | ||
+ | |boolean | ||
+ | |Логический тип | ||
+ | |- | ||
+ | |image | ||
+ | |Данные о логотипе | ||
+ | |{} | ||
+ | |... | ||
+ | |- | ||
| | | | ||
− | : | + | : image |
− | | | + | |Ссылка на логотип |
− | | | + | |string |
− | | | + | |Строка, указывающая относительный путь к изображению |
− | |- | + | |- |
| | | | ||
− | : | + | : icon |
− | | | + | |Ссылка на иконку логотипа |
− | | | + | |string |
− | | | + | |Строка, указывающая относительный путь к изображению |
− | |- | + | |- |
| | | | ||
− | : | + | : height |
− | | | + | |Высота логотипа |
|number | |number | ||
− | | | + | |Целое положительное число |
− | |- | + | |- |
| | | | ||
− | : | + | : width |
− | | | + | |Ширина логотипа |
|number | |number | ||
− | | | + | |Целое положительное число |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | | | + | |map_image |
− | + | |Данные о схеме судна | |
− | |Данные о | + | |{} |
− | | | ||
|... | |... | ||
|- | |- | ||
− | | | + | |} |
− | : | + | </div> |
− | + | </div> | |
− | + | ||
− | + | === Аэропорты (airports) === | |
− | + | ||
− | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px"> | |
− | :: | + | ==== Данные по IATA коду аэропорта ==== |
− | + | <pre id="guide.airports.CODE">guide.airports.CODE = </pre> | |
− | + | <div class="mw-collapsible-content"> | |
− | + | <pre> | |
− | + | { | |
− | + | "IATA": "DME", | |
− | : | + | "name": "Домодедово, Москва", |
− | | | + | "nameEn": "Domodedovo, Moscow", |
− | + | "properName": "Домодедово", | |
− | + | "properNameEn": "Domodedovo", | |
+ | "cityId": 58165, | ||
+ | "isAggregation": false, | ||
+ | "countryCode": "RU" | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | {| border="1" cellpadding="10" cellspacing="0" | ||
+ | !Параметр | ||
+ | !Описание | ||
+ | !Тип | ||
+ | !Значения | ||
|- | |- | ||
− | | | + | |IATA |
− | + | |IATA код аэропорта | |
− | | | + | |string |
− | | | + | |Строка из 3-х заглавных латинских букв |
− | | | ||
|- | |- | ||
− | | | + | |name |
− | + | |Название аэропорта | |
− | | | + | |string |
− | | | + | |Строка |
− | | | + | |- |
+ | |nameEn | ||
+ | |Английское название аэропорта | ||
+ | |string | ||
+ | |Строка | ||
+ | |- | ||
+ | |properName | ||
+ | |Оригинальное название аэропорта (без города), может быть пустым | ||
+ | |string | ||
+ | |Строка | ||
|- | |- | ||
− | | | + | |properNameEn |
− | + | |Оригинальное название аэропорта на английском (без города), может быть пустым | |
− | | | ||
|string | |string | ||
|Строка | |Строка | ||
|- | |- | ||
− | | | + | |cityId |
− | + | |Код города | |
− | | | ||
|number | |number | ||
|Число | |Число | ||
|- | |- | ||
− | | | + | |isAggregation |
− | + | |Является ли город агрегатом аэропортов | |
− | | | + | |boolean |
+ | |Логический тип | ||
+ | |- | ||
+ | |countryCode | ||
+ | |Код страны | ||
|string | |string | ||
− | |Строка | + | |Строка из 2 латинских букв(ISO 3166-1 alpha-2) |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|} | |} | ||
+ | </div> | ||
+ | </div> | ||
− | + | === Авиакомпании (airlines) === | |
− | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px"> | |
− | + | ==== Данные по IATA коду авиакомпании ==== | |
− | + | <pre id="guide.airlines.CODE">guide.airlines.CODE = </pre> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px | ||
− | ==== | ||
− | <pre id=" | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
− | |||
<pre> | <pre> | ||
{ | { | ||
− | + | "IATA": "SU", | |
− | + | "name": "Аэрофлот - Российские авиалинии", | |
− | + | "nameEn": "Aeroflot", | |
− | + | "rating": 6.43, | |
− | + | "countryCode": "RU", | |
− | + | "logo": { | |
− | + | "image": "/static/images/guide_carrier/logotype_5_0.svg", | |
− | + | "icon": "/static/images/guide_carrier_icon/logotype_5_0.svg", | |
− | + | "height": null, | |
− | + | "width": null | |
− | + | }, | |
− | + | "monochromeLogo": { | |
− | + | "image": "/static/images/guide_carrier/monochrome_logotype_5_0.svg", | |
− | + | "icon": "/static/images/guide_carrier_monochrome_icon/monochrome_logotype_5_0.svg", | |
− | + | "height": null, | |
− | + | "width": null | |
− | + | }, | |
− | + | "colors": { | |
− | + | "companyColor": "#000080", | |
− | + | "companyColorAdditional": "#000080" | |
− | + | } | |
− | + | } | |
− | + | </pre> | |
− | + | ||
− | + | ||
− | + | {| border="1" cellpadding="10" cellspacing="0" | |
− | + | !Параметр | |
− | + | !Описание | |
− | + | !Тип | |
− | + | !Значения | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | </pre> | ||
− | {| border="1" cellpadding="10" cellspacing="0" | ||
− | !Параметр | ||
− | !Описание | ||
− | !Тип | ||
− | !Значения | ||
|- | |- | ||
− | | | + | |IATA |
− | | | + | |IATA код авиакомпании |
− | | | + | |string |
− | | | + | |Строка из 2 знаков (букв латинского алфавита и цифр) |
|- | |- | ||
− | | | + | |name |
− | + | |Название авиакомпании | |
− | | | + | |string |
− | | | + | |Строка |
− | | | ||
|- | |- | ||
− | | | + | |nameEn |
− | + | |Английское название авиакомпании | |
− | | | + | |string |
− | | | + | |Строка |
+ | |- | ||
+ | |rating | ||
+ | |Рейтинг перевозчика | ||
+ | |number | ||
+ | |Число | ||
+ | |- | ||
+ | |countryCode | ||
+ | |Код страны авиакомпании | ||
+ | |string | ||
+ | |Строка из 2 латинских букв (ISO 3166-1 alpha-2) | ||
+ | |- | ||
+ | |logo | ||
+ | |Данные о логотипе авиакомпании | ||
+ | |{} | ||
+ | |... | ||
+ | |- | ||
+ | |monochromeLogo | ||
+ | |Данные о монохромном логотипе авиакомпании | ||
+ | |{} | ||
|... | |... | ||
|- | |- | ||
| | | | ||
− | : | + | : image |
− | | | + | |Ссылка на логотип авиакомпании |
− | | | + | |string |
− | |Строка | + | |Строка, указывающая относительный путь к изображению |
|- | |- | ||
| | | | ||
− | : | + | : icon |
− | | | + | |Ссылка на иконку логотипа авиакомпании |
− | | | + | |string |
− | | | + | |Строка, указывающая относительный путь к изображению |
|- | |- | ||
| | | | ||
− | : | + | : height |
− | | | + | |Высота логотипа |
− | | | + | |number |
− | | | + | |Целое положительное число |
|- | |- | ||
| | | | ||
− | : | + | : width |
− | | | + | |Ширина логотипа |
− | | | + | |number |
− | | | + | |Целое положительное число |
|- | |- | ||
− | | | + | |colors |
− | + | |Данные о фирменных цветах авиакомпании | |
− | + | |{} | |
− | |||
− | |||
− | |||
− | |||
− | | | ||
− | | | ||
|... | |... | ||
|- | |- | ||
| | | | ||
− | : | + | : companyColor |
− | | | + | |Фирменный цвет |
− | | | + | |string |
− | | | + | |HEX код, соответствующий регулярному выражению /^\#[\da-f]{6}$/ |
|- | |- | ||
| | | | ||
− | : | + | : companyColorAdditional |
− | | | + | |Дополнительный фирменный цвет |
− | | | + | |string |
− | | | + | |HEX код, соответствующий регулярному выражению /^\#[\da-f]{6}$/ |
|- | |- | ||
− | + | |} | |
− | + | </div> | |
− | + | </div> | |
− | + | ||
− | + | === Отели (hotels) === | |
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |} | ||
− | </div> | ||
− | </div> | ||
− | |||
− | |||
− | |||
− | === | ||
− | |||
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px"> | ||
− | ==== Данные по коду | + | ==== Данные по коду отеля ==== |
− | <pre id="guide. | + | <pre id="guide.hotels.ID">guide.hotels.ID = </pre> |
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
− | |||
<pre> | <pre> | ||
{ | { | ||
− | + | "name": "Bridgestreet Opera Saint Lazar", | |
− | + | "nameEn": "BRIDGESTREET OPERA SAINT LAZAR", | |
− | + | "cityId": 15777, | |
− | } | + | "id": 7 |
+ | } | ||
</pre> | </pre> | ||
+ | |||
{| border="1" cellpadding="10" cellspacing="0" | {| border="1" cellpadding="10" cellspacing="0" | ||
Строка 4221: | Строка 4570: | ||
!Тип | !Тип | ||
!Значения | !Значения | ||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|name | |name | ||
− | |Название | + | |Название отеля |
|string | |string | ||
− | |Строка | + | |Строка |
|- | |- | ||
|nameEn | |nameEn | ||
− | |Английское название | + | |Английское название отеля |
|string | |string | ||
|Строка | |Строка | ||
+ | |- | ||
+ | |cityId | ||
+ | |Идентификатор города, в котором расположен отель | ||
+ | |number | ||
+ | |Число | ||
+ | |- | ||
+ | |id | ||
+ | |Код отеля | ||
+ | |number | ||
+ | |Число | ||
+ | |- | ||
|} | |} | ||
</div> | </div> | ||
</div> | </div> | ||
− | === | + | === Автокомплит (autocomplete) === |
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px"> | ||
− | ==== | + | ==== IATA совместимые локации ==== |
− | <pre id="guide. | + | <pre id="guide.autocomplete.iata">guide.autocomplete.iata = </pre> |
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<pre> | <pre> | ||
− | { | + | [ |
− | + | { | |
− | + | "IATA": "MOW", | |
− | + | "isCity": true, | |
− | + | "cityId": 58165 | |
− | + | } | |
− | + | ] | |
</pre> | </pre> | ||
Строка 4264: | Строка 4619: | ||
|- | |- | ||
|IATA | |IATA | ||
− | | | + | |IATA код |
|string | |string | ||
|Строка из 3 букв латинского алфавита | |Строка из 3 букв латинского алфавита | ||
|- | |- | ||
− | | | + | |isCity |
− | | | + | |Признак, что указан код города-агрегата аэропортов |
− | | | + | |boolean |
− | | | + | |Логический тип |
|- | |- | ||
− | | | + | |cityId |
− | | | + | |Идентификатор города |
− | + | |number | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |number | ||
|Число | |Число | ||
|} | |} | ||
Строка 4291: | Строка 4636: | ||
</div> | </div> | ||
− | |||
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px"> | ||
− | ==== | + | ==== Города ==== |
− | <pre id="guide. | + | <pre id="guide.autocomplete.cities">guide.autocomplete.cities = </pre> |
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<pre> | <pre> | ||
− | { | + | [ |
− | + | { | |
− | + | "id": "58165", | |
− | + | "name": "Москва", | |
− | + | "country_code": "RU", | |
− | + | "country_name": "Россия" | |
− | + | } | |
− | + | ] | |
− | + | </pre> | |
− | + | ||
− | + | ||
− | + | {| border="1" cellpadding="10" cellspacing="0" | |
− | + | !Параметр | |
− | + | !Описание | |
− | + | !Тип | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | </pre> | ||
− | |||
− | {| border="1" cellpadding="10" cellspacing="0" | ||
− | !Параметр | ||
− | !Описание | ||
− | !Тип | ||
!Значения | !Значения | ||
|- | |- | ||
|id | |id | ||
− | |Идентификатор | + | |Идентификатор города |
− | | | + | |int |
− | |число | + | |Целое число |
|- | |- | ||
|name | |name | ||
− | |Название | + | |Название города |
|string | |string | ||
|Строка | |Строка | ||
|- | |- | ||
− | | | + | |country_code |
− | | | + | |Код страны |
|string | |string | ||
− | |Строка | + | |Строка из 2 латинских букв |
|- | |- | ||
− | | | + | |country_name |
− | | | + | |Название страны |
|string | |string | ||
|Строка | |Строка | ||
|- | |- | ||
− | | | + | |} |
− | + | </div> | |
− | + | </div> | |
− | + | ||
− | + | == Служебная информация(system) == | |
− | + | ||
− | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;"> | |
− | + | === Служебная информация (info) === | |
− | + | <pre id="system.info">system.info = </pre> | |
− | + | <div class="mw-collapsible-content"> | |
− | |||
− | |||
+ | <pre> | ||
+ | { | ||
+ | "responce": { | ||
+ | "timestamp": 1433754718.9557, | ||
+ | "responceTime": 0.10900616645813 | ||
+ | }, | ||
+ | "user": { | ||
+ | "userID": 3037, | ||
+ | "agencyID": 3036, | ||
+ | "status": "manager", | ||
+ | "settings": { | ||
+ | "currentLanguage": "ru", | ||
+ | "currentCurrency": "USD", | ||
+ | "agencyCurrency": "USD" | ||
+ | "googleMapsApiKey": "null" | ||
+ | "googleMapsClientId": "null" | ||
+ | }, | ||
+ | "promoCode": { | ||
+ | "code": "22SV2ZS9S", | ||
+ | "promoAction": { | ||
+ | "name": "Название акции", | ||
+ | "description": "Описание акции", | ||
+ | "hasFullDesc": true, | ||
+ | "fullDescURL": "index.php?go=loyalty/description&id=106" | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | {| border="1" cellpadding="10" cellspacing="0" | ||
+ | !Параметр | ||
+ | !Описание | ||
+ | !Тип | ||
+ | !Значения | ||
|- | |- | ||
− | | | + | |responce |
− | | | + | |Ограничения на максимальные значения параметров |
− | | | + | |{} |
− | | | + | |... |
− | |||
− | |||
|- | |- | ||
− | | | + | | |
− | | | + | : timestamp |
− | | | + | |Текущая временная метка с сервера |
− | | | + | |number |
+ | |Вещественное число | ||
|- | |- | ||
− | | | + | | |
− | | | + | : responceTime |
+ | |Время ответа | ||
|number | |number | ||
− | | | + | |Вещественное число |
|- | |- | ||
− | | | + | |user |
− | | | + | |Служебная информация о пользователе |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|{} | |{} | ||
|... | |... | ||
|- | |- | ||
| | | | ||
− | : | + | : userID |
− | | | + | |ID пользователя |
− | | | + | |number |
− | | | + | |Целое положительное число |
|- | |- | ||
| | | | ||
− | : | + | : agencyID |
− | | | + | |ID агентства |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|number | |number | ||
|Целое положительное число | |Целое положительное число | ||
|- | |- | ||
| | | | ||
− | : | + | : status |
− | | | + | |Статус пользователя |
− | | | + | |string |
− | | | + | |Строка, принимающая следующие значения: |
+ | : guest | ||
+ | : admin | ||
+ | : user | ||
+ | : expert | ||
+ | : manager | ||
+ | : company_user | ||
+ | : company_expert | ||
+ | : company_manager | ||
|- | |- | ||
− | | | + | | |
− | | | + | : settings |
+ | | Настройки пользователя | ||
|{} | |{} | ||
|... | |... | ||
|- | |- | ||
− | | | + | | |
− | + | :: currentLanguage | |
− | + | | Текущий язык | |
− | + | |string | |
− | + | |Строка из 2 латинских букв | |
− | + | |- | |
− | + | | | |
− | + | :: currentCurrency | |
− | + | | Текущая валюта | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |- | ||
− | | | ||
− | | | ||
|string | |string | ||
− | |Строка из 3 | + | |Строка из 3 латинских букв |
|- | |- | ||
− | | | + | | |
− | | | + | :: agencyCurrency |
+ | | Валюта агентства | ||
|string | |string | ||
− | |Строка | + | |Строка из 3 латинских букв |
|- | |- | ||
− | | | + | | |
− | | | + | :: googleMapsApiKey |
+ | | Api ключ для доступа к google maps | ||
|string | |string | ||
|Строка | |Строка | ||
|- | |- | ||
− | | | + | | |
− | | | + | :: googleMapsClientId |
+ | | CliendId для доступа к google maps | ||
|string | |string | ||
|Строка | |Строка | ||
|- | |- | ||
− | | | + | | |
− | | | + | : promoCode |
+ | | Информация о промокоде | ||
+ | |{} | ||
+ | |... | ||
+ | |- | ||
+ | | | ||
+ | :: code | ||
+ | | код | ||
+ | |string | ||
+ | |Строка | ||
+ | |- | ||
+ | | | ||
+ | :: promoAction | ||
+ | | информация о промоакции | ||
+ | |{} | ||
+ | |... | ||
+ | |- | ||
+ | | | ||
+ | ::: name | ||
+ | | Название акции | ||
|string | |string | ||
|Строка | |Строка | ||
|- | |- | ||
− | | | + | | |
− | | | + | ::: description |
− | | | + | | Описание акции |
− | | | + | |string |
+ | |Строка | ||
|- | |- | ||
− | | | + | | |
− | | | + | ::: hasFullDesc |
+ | | Флаг наличия подробного описания | ||
|boolean | |boolean | ||
− | | | + | |логический тип |
|- | |- | ||
− | | | + | | |
− | | | + | ::: fullDescURL |
+ | | Ссылка для получения подробного описания | ||
|string | |string | ||
− | |Строка | + | |Строка |
+ | |- | ||
|} | |} | ||
</div> | </div> | ||
</div> | </div> | ||
− | === | + | == Заказы (order) == |
+ | |||
+ | === Аутентификация (auth) === | ||
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px"> | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;"> |
− | ==== Данные | + | ==== Данные запроса аутентификации(request) ==== |
− | <pre id=" | + | <pre id="order.auth.request">order.auth.request = </pre> |
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
+ | |||
<pre> | <pre> | ||
{ | { | ||
− | + | "login": "test", | |
− | + | "password": "test" | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
</pre> | </pre> | ||
− | |||
− | |||
{| border="1" cellpadding="10" cellspacing="0" | {| border="1" cellpadding="10" cellspacing="0" | ||
!Параметр | !Параметр | ||
Строка 4539: | Строка 4876: | ||
!Значения | !Значения | ||
|- | |- | ||
− | | | + | |login |
− | | | + | |Логин пользователя |
|string | |string | ||
− | | | + | |строка |
|- | |- | ||
− | | | + | |password |
− | | | + | |Пароль пользователя |
|string | |string | ||
− | | | + | |строка |
|- | |- | ||
− | | | + | |} |
− | | | + | </div> |
− | + | </div> | |
− | + | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;"> | ||
+ | ==== Данные результата аутентификации(response) ==== | ||
+ | <pre id="order.auth.response">order.auth.response = </pre> | ||
+ | <div class="mw-collapsible-content"> | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "success": true | ||
+ | } | ||
+ | </pre> | ||
+ | {| border="1" cellpadding="10" cellspacing="0" | ||
+ | !Параметр | ||
+ | !Описание | ||
+ | !Тип | ||
+ | !Значения | ||
|- | |- | ||
− | | | + | |success |
− | | | + | |Результат аутентификации |
− | | | + | |Boolean |
− | | | + | |Логический тип |
+ | |- | ||
+ | |} | ||
+ | </div> | ||
+ | </div> | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;"> | ||
+ | ==== Данные запроса восстановления пароля(sendPasswordLink) ==== | ||
+ | <pre id="order.auth.sendPasswordLink">order.auth.sendPasswordLink = </pre> | ||
+ | <div class="mw-collapsible-content"> | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "login": "test" | ||
+ | } | ||
+ | </pre> | ||
+ | {| border="1" cellpadding="10" cellspacing="0" | ||
+ | !Параметр | ||
+ | !Описание | ||
+ | !Тип | ||
+ | !Значения | ||
|- | |- | ||
− | | | + | |login |
− | | | + | |Логин пользователя |
|string | |string | ||
− | | | + | |строка |
|- | |- | ||
− | | | + | |} |
− | + | </div> | |
− | + | </div> | |
− | | | + | |
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;"> | ||
+ | ==== Результат запроса восстановления пароля(sendPasswordLinkResponse) ==== | ||
+ | <pre id="order.auth.sendPasswordLinkResponse">order.auth.sendPasswordLinkResponse = </pre> | ||
+ | <div class="mw-collapsible-content"> | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "success": true, | ||
+ | "message": "Письмо со ссылкой на восстановление пароля отправлено вам на почту" | ||
+ | } | ||
+ | </pre> | ||
+ | {| border="1" cellpadding="10" cellspacing="0" | ||
+ | !Параметр | ||
+ | !Описание | ||
+ | !Тип | ||
+ | !Значения | ||
|- | |- | ||
− | | | + | |success |
− | | | + | |Результат аутентификации |
− | | | + | |Boolean |
− | + | |Логический тип | |
+ | |- | ||
+ | |message | ||
+ | |Сообщение | ||
+ | |string | ||
+ | |строка | ||
+ | |- | ||
+ | |} | ||
+ | </div> | ||
+ | </div> | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;"> | ||
+ | ==== Данные запроса регистрации пользователя(registration) ==== | ||
+ | <pre id="order.auth.registration">order.auth.registration = </pre> | ||
+ | <div class="mw-collapsible-content"> | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "booking_name": "tst", | ||
+ | "booking_lastname": "tst", | ||
+ | "registration_email": "tst@mute-lab.com", | ||
+ | "registration_password": "tst", | ||
+ | "booking_phone": "89271111111", | ||
+ | "subscribe": true, | ||
+ | "capture": "tst" | ||
+ | } | ||
+ | </pre> | ||
+ | {| border="1" cellpadding="10" cellspacing="0" | ||
+ | !Параметр | ||
+ | !Описание | ||
+ | !Тип | ||
+ | !Значения | ||
|- | |- | ||
− | | | + | |booking_name |
− | + | |Имя пользователя | |
− | | | ||
|string | |string | ||
− | | | + | |строка |
|- | |- | ||
− | | | + | |booking_lastname |
− | + | |Фамилия пользователя | |
− | | | ||
|string | |string | ||
− | | | + | |строка |
|- | |- | ||
− | | | + | |registration_email |
− | + | |Адрес электронной почты пользователя | |
− | | | + | |string |
− | | | + | |строка |
− | | | ||
|- | |- | ||
− | | | + | |registration_password |
− | + | |Пароль | |
− | | | + | |string |
− | | | + | |строка |
− | | | ||
|- | |- | ||
− | | | + | |booking_phone |
− | | | + | |Телефон пользователя |
− | | | + | |string |
− | | | + | |строка |
|- | |- | ||
− | | | + | |subscribe |
− | + | |Признак согласия на получение информации о лучших предложениях | |
− | | | + | |Boolean |
− | | | + | |Логический тип |
− | | | ||
|- | |- | ||
− | | | + | |capture |
− | + | |Код проверки с контрольного изображения | |
− | | | ||
|string | |string | ||
− | | | + | |строка |
|- | |- | ||
|} | |} | ||
Строка 4619: | Строка 5032: | ||
</div> | </div> | ||
− | === | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;"> |
+ | ==== Результат запроса регистрации пользователя(registrationResponse) ==== | ||
+ | <pre id="order.auth.registrationResponse">order.auth.registrationResponse = </pre> | ||
+ | <div class="mw-collapsible-content"> | ||
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
− | " | + | "success": true, |
− | " | + | "message": "Письмо с регистрационными данными отправлено на Ваш электронный адрес. Для подтверждения |
− | + | регистрации перейдите, пожалуйста, по ссылке в письме.", | |
− | " | + | "redirectUrl": null |
− | } | + | } |
</pre> | </pre> | ||
− | |||
− | |||
{| border="1" cellpadding="10" cellspacing="0" | {| border="1" cellpadding="10" cellspacing="0" | ||
!Параметр | !Параметр | ||
Строка 4641: | Строка 5051: | ||
!Значения | !Значения | ||
|- | |- | ||
− | | | + | |success |
− | | | + | |Результат регистрации |
+ | |Boolean | ||
+ | |Логический тип | ||
+ | |- | ||
+ | |message | ||
+ | |Сообщение | ||
|string | |string | ||
− | | | + | |строка |
|- | |- | ||
− | | | + | |redirectUrl |
− | | | + | |Ссылка для перехода |
|string | |string | ||
− | | | + | |строка |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|} | |} | ||
Строка 4665: | Строка 5070: | ||
</div> | </div> | ||
− | === | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;"> |
+ | ==== Данные результата запроса о параметрах капчи(captchaParamsResponse) ==== | ||
+ | <pre id="order.auth.captchaParamsResponse">order.auth.captchaParamsResponse = </pre> | ||
+ | <div class="mw-collapsible-content"> | ||
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
− | + | { | |
− | + | "image": "data:image/jpeg;base64,JBJ435346...." | |
− | + | } | |
− | |||
− | |||
− | |||
− | |||
</pre> | </pre> | ||
− | |||
− | |||
{| border="1" cellpadding="10" cellspacing="0" | {| border="1" cellpadding="10" cellspacing="0" | ||
!Параметр | !Параметр | ||
Строка 4688: | Строка 5086: | ||
!Значения | !Значения | ||
|- | |- | ||
− | | | + | |image |
− | | | + | |Ссылка на изображение |
|string | |string | ||
− | | | + | |строка |
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|} | |} | ||
</div> | </div> | ||
</div> | </div> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;"> | ||
+ | ==== Данные запроса о состоянии заказа(status) ==== | ||
+ | <pre id="order.auth.status">order.auth.status = </pre> | ||
+ | <div class="mw-collapsible-content"> | ||
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
− | + | { | |
− | + | "booking_id": 445469, | |
− | + | "passenger_lastname": "Ivanov", | |
− | + | "access_code": "8Z273L" | |
− | + | } | |
− | |||
− | |||
− | |||
</pre> | </pre> | ||
− | |||
− | |||
{| border="1" cellpadding="10" cellspacing="0" | {| border="1" cellpadding="10" cellspacing="0" | ||
!Параметр | !Параметр | ||
Строка 4729: | Строка 5113: | ||
!Значения | !Значения | ||
|- | |- | ||
− | | | + | |booking_id |
− | |Идентификатор | + | |Идентификатор заказа |
− | |||
− | |||
− | |||
− | |||
− | |||
|string | |string | ||
− | | | + | |строка, может содержать цифры от 0 до 9 и дефис |
|- | |- | ||
− | | | + | |passenger_lastname |
− | | | + | |Фамилия одного из пассажиров |
|string | |string | ||
− | | | + | |строка |
|- | |- | ||
− | | | + | |access_code |
− | | | + | |Код доступа к заказу |
|string | |string | ||
− | | | + | |строка |
|- | |- | ||
|} | |} | ||
</div> | </div> | ||
</div> | </div> | ||
− | |||
− | |||
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;"> | ||
− | === | + | ==== Данные результата запроса о состоянии заказа(statusResponse) ==== |
− | <pre id=" | + | <pre id="order.auth.statusResponse">order.auth.statusResponse = </pre> |
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<pre> | <pre> | ||
{ | { | ||
− | + | "success": true, | |
− | + | "message": null, | |
− | + | "redirectUrl": "http://nemotravel/poffice__bookinfo?booking_id=452434" | |
− | + | } | |
− | + | </pre> | |
− | + | {| border="1" cellpadding="10" cellspacing="0" | |
− | + | !Параметр | |
− | + | !Описание | |
− | + | !Тип | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | } | ||
− | </pre> | ||
− | {| border="1" cellpadding="10" cellspacing="0" | ||
− | !Параметр | ||
− | !Описание | ||
− | !Тип | ||
!Значения | !Значения | ||
|- | |- | ||
− | | | + | |success |
− | | | + | |Признак успешности получения ответа |
− | | | + | |Boolean |
− | | | + | |Логический тип |
|- | |- | ||
− | | | + | |message |
− | + | |Сообщение | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | | | ||
|string | |string | ||
− | | | + | |строка |
|- | |- | ||
− | | | + | |redirectUrl |
− | + | |Ссылка для перехода | |
− | | | ||
|string | |string | ||
− | | | + | |строка |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|} | |} | ||
</div> | </div> | ||
</div> | </div> | ||
− | |||
− | |||
=== Протокорзина (reminder) === | === Протокорзина (reminder) === | ||
Строка 5056: | Строка 5298: | ||
</div> | </div> | ||
</div> | </div> | ||
− | |||
== Информация о системе (system) == | == Информация о системе (system) == |
Текущая версия на 14:14, 27 февраля 2019
Содержание
- 1 Общее описание
- 2 Описание запросов
- 2.1 Модуль Авиабилеты (flights)
- 2.1.1 Модуль Поиск (search)
- 2.1.1.1 Получение параметров поиска "по умолчанию"
- 2.1.1.2 Получение параметров поиска с идентификатором Х
- 2.1.1.3 Запрос поиска авиабилетов (request)
- 2.1.1.4 Запрос поиска расписания авиаперелетов (scheduleRequest)
- 2.1.1.5 Запрос получения результатов поиска
- 2.1.1.6 Запрос получения результатов дочернего поиска из матрицы окружных дат
- 2.1.1.7 Запрос получения истории поиска по текущему пользователю
- 2.1.1.8 Запрос получения информации о перелёте
- 2.1.2 Модуль Вспомогательных Функций (utils)
- 2.1.1 Модуль Поиск (search)
- 2.2 Модуль Отели (hotels)
- 2.3 Модуль Путеводитель (guide)
- 2.3.1 Модуль Autocomplete (autocomplete)
- 2.3.2 Получение информации о воздушном судне(aircraft)
- 2.3.3 Получение информации о авиакомпании(airline)
- 2.3.4 Получение информации об аэропорте(airport)
- 2.3.5 Получение информации о городе(city)
- 2.3.6 Получение информации о стране(country)
- 2.3.7 Получение информации об отеле(hotel)
- 2.3.8 Получение информации об отелях в выбранном городе
- 2.4 Модуль Заказов (order)
- 2.5 Модуль информации о системе (system)
- 2.1 Модуль Авиабилеты (flights)
- 3 Объединение запросов
- 4 Структуры данных
- 4.1 Авиабилеты (flights)
- 4.1.1 Поиск (search)
- 4.1.1.1 Данные формы поиска (formData)
- 4.1.1.2 Данные запроса поиска (request)
- 4.1.1.3 Данные запроса поиска перелетов по расписанию (scheduleRequest)
- 4.1.1.4 Данные результатов поиска (results)
- 4.1.1.5 Данные результатов поиска расписания перелетов (scheduleResults)
- 4.1.1.6 Настройки выдачи результатов (resultData)
- 4.1.1.7 Матрица окружных дат (resultMatrix)
- 4.1.1.8 Выдача истории поиска по текущему пользователю (history)
- 4.1.1.9 Получение информации о перелёте(flightInfo)
- 4.1.2 Вспомогательные функции (utils)
- 4.1.1 Поиск (search)
- 4.2 Отели (hotels)
- 4.3 Путеводитель (guide)
- 4.4 Служебная информация(system)
- 4.5 Заказы (order)
- 4.5.1 Аутентификация (auth)
- 4.5.1.1 Данные запроса аутентификации(request)
- 4.5.1.2 Данные результата аутентификации(response)
- 4.5.1.3 Данные запроса восстановления пароля(sendPasswordLink)
- 4.5.1.4 Результат запроса восстановления пароля(sendPasswordLinkResponse)
- 4.5.1.5 Данные запроса регистрации пользователя(registration)
- 4.5.1.6 Результат запроса регистрации пользователя(registrationResponse)
- 4.5.1.7 Данные результата запроса о параметрах капчи(captchaParamsResponse)
- 4.5.1.8 Данные запроса о состоянии заказа(status)
- 4.5.1.9 Данные результата запроса о состоянии заказа(statusResponse)
- 4.5.2 Протокорзина (reminder)
- 4.5.1 Аутентификация (auth)
- 4.6 Информация о системе (system)
- 4.7 Трэвел-политики (travelPolicies)
- 4.1 Авиабилеты (flights)
Общее описание
JSON сервис, доступный по адресу HOST/api/...
Предоставляет унифицированный формат для разработки фронтэнд приложения на основе системы nemo.travel
Данные доступны как кроссдоменные запросы XMLHTTPRequest
Формат запросов имеет вид
http(s)://host/api/{component}/{module}/{action} + /{parameter1}/{parameter2}... (где параметры необязательны)
Пример: http://demo.nemo.travel/api/flights/search/formData
Примечание: для изменения языка в ответах запросов нужно использовать GET параметр apilang=xx
, где xx
это 2-х буквенный код языка.
Описание запросов
Модуль Авиабилеты (flights)
Модуль Поиск (search)
Получение параметров поиска "по умолчанию"
- Request
- Response:
- guide.cities.ID (Информация о городах)
- guide.airports.CODE (Информация об аэропортах)
- flights.search.formData (Параметры формы поиска)
- flights.search.request (Параметры запроса поиска)
- guide.countries.CODE (Информация о странах)
- system.info (Служебная информация)
Получение параметров поиска с идентификатором Х
- Request
- URI /api/flights/search/formData/{searchId} (получение параметров поиска с идентификатором {searchId})
- Response:
- guide.countries.CODE (Информация о странах)
- guide.cities.ID (Информация о городах)
- guide.airports.CODE (Информация об аэропортах)
- flights.search.formData (Параметры формы поиска)
- flights.search.request (Параметры запроса поиска)
- system.info (Служебная информация)
Запрос поиска авиабилетов (request)
- Request
- URI /api/flights/search/request/{searchId} (получение данных запроса поиска с идентификатором {searchId})
- POST request="flights.search.request" (Параметры запроса поиска)
- Response:
- guide.countries.CODE (Информация о странах)
- guide.cities.ID (Информация о городах)
- guide.airports.CODE (Информация об аэропортах)
- guide.airlines.CODE (Информация об авиакомпаниях, если выбраны предпочитаемые)
- flights.search.request (Параметры запроса поиска)
- system.info (Служебная информация)
примечание: /api/flights/search/request?test : тестовый скрипт
Запрос поиска расписания авиаперелетов (scheduleRequest)
- Request
- URI /api/flights/search/scheduleRequest?test (получение данных запроса поиска с идентификатором {searchId})
- POST request="flights.search.scheduleRequest" (Параметры запроса поиска)
- Response:
- guide.countries.CODE (Информация о странах)
- guide.cities.ID (Информация о городах)
- guide.airports.CODE (Информация об аэропортах)
- guide.airlines.CODE (Информация об авиакомпаниях, если выбраны предпочитаемые)
- flights.search.request (Параметры запроса поиска)
- flights.search.scheduleRequest (Параметры запроса поиска расписания перелетов)
- flights.search.formData (Параметры формы поиска)
- flights.search.scheduleResults (Результаты поиска расписания перелетов)
- system.info (Служебная информация)
примечание: /api/flights/search/scheduleRequest?test : тестовый скрипт
Запрос получения результатов поиска
- Request
- URI /api/flights/search/results/{searchId} (получение результатов поиска с идентификатором {searchId})
- Response:
- guide.countries.CODE (Информация о странах)
- guide.cities.ID (Информация о городах)
- guide.airports.CODE (Информация об аэропортах)
- guide.airlines.CODE (Информация об авиакомпаниях)
- guide.aircrafts.CODE (Информация о воздушных судах)
- flights.search.resultData (Параметры результатов поиска)
- flights.search.results (Результаты поиска)
- flights.search.request (Параметры запроса поиска)
- flights.search.formData (Параметры формы поиска)
- flights.search.resultMatrix (Данные для отображения матрицы перелетов, если выбран поиск по окружным датам)
- travelPolicies (Трэвел-политики и их описание)
- system.info (Служебная информация)
Запрос получения результатов дочернего поиска из матрицы окружных дат
- Request
- URI /api/flights/search/results/{searchId}/{depDate} (для перелета в одну сторону)
- Пример: /api/flights/search/results/53159/2015-07-09
- URI /api/flights/search/results/{searchId}/{depDate}/{depDateBack} (для перелета туда и обратно)
- Пример: /api/flights/search/results/53159/2015-07-09/2015-07-14
- URI /api/flights/search/results/{searchId}/{depDate} (для перелета в одну сторону)
- Response:
- flights.search.resultData (Параметры результатов поиска)
- flights.search.results (Результаты поиска)
- flights.search.request (Параметры запроса поиска)
- flights.search.formData (Параметры формы поиска)
- guide.countries.CODE (Информация о странах)
- guide.cities.ID (Информация о городах)
- guide.airports.CODE (Информация об аэропортах)
- guide.airlines.CODE (Информация об авиакомпаниях)
- guide.aircrafts.CODE (Информация о воздушных судах)
- system.info (Служебная информация)
Запрос получения истории поиска по текущему пользователю
- Request
- URI /api/flights/search/history
- Response:
- guide.countries.CODE (Информация о странах)
- guide.cities.ID (Информация о городах)
- guide.airports.CODE (Информация об аэропортах)
- flights.search.history (Информация об истории поиска поиска)
- system.info (Служебная информация)
Запрос получения информации о перелёте
- Request
- URI /api/flights/search/flightInfo/{flightId}
- Response:
- flights.search.flightInfo (Информация о перелёте)
- system.info (Служебная информация)
Модуль Вспомогательных Функций (utils)
Запрос определения солнечной стороны
- Request
- URI /api/flights/utils/sunInfo/{dep_airport}/{depDateTimeLocal}/{arr_airport}/{arrDateTimeLocal}
- Пример: /api/flights/utils/sunInfo/RTW/2016-06-28T15:00:00/DME/2016-06-28T20:30:00
- URI /api/flights/utils/sunInfo/{dep_airport}/{depDateTimeLocal}/{arr_airport}/{arrDateTimeLocal}
- Response:
- flights.utils.sunInfo (Информация о солнечной стороне)
- system.info (Служебная информация)
Модуль Отели (hotels)
Модуль Поиск (search)
Получение параметров поиска "по умолчанию"
- Request
- URI /api/hotels/search/formData :
- Response:
- guide.countries.CODE (Информация о странах)
- guide.cities.ID (Информация о городах)
- guide.hotels.ID (Информация об отелях)
- hotels.search.formData (Параметры формы поиска)
- hotels.search.request (Параметры запроса поиска)
- system.info (Служебная информация)
Получение параметров поиска с идентификатором Х
- Request
- URI /api/hotels/search/formData/{searchId} (получение параметров поиска с идентификатором {searchId})
- Response:
- guide.countries.CODE (Информация о странах)
- guide.cities.ID (Информация о городах)
- guide.hotels.ID (Информация об отелях)
- hotels.search.formData (Параметры формы поиска)
- hotels.search.request (Параметры запроса поиска)
- system.info (Служебная информация)
Запрос поиска отелей (request)
- Request
- URI /api/hotels/search/request/{searchId?} (получение данных запроса поиска с идентификатором {searchId} или создание нового запроса на поиск)
- POST request="hotels.search.request" (Параметры запроса поиска)
- Response:
- guide.countries.CODE (Информация о странах)
- guide.cities.ID (Информация о городах)
- guide.hotels.ID (Информация об отелях)
- hotels.search.request (Параметры запроса поиска)
- hotels.search.response (Параметры ответа поиска)
- system.info (Служебная информация
примечание: /api/hotels/search/request?test : тестовый скрипт
Запрос получения результатов поиска(results)
- Request
- URI /api/hotels/search/results/{sroId} (получение результатов поиска с идентификатором {sroId})
- Response:
- guide.countries.CODE (Информация о странах)
- guide.cities.ID (Информация о городах)
- guide.hotels.ID (Информация об отелях)
- hotels.search.request (Параметры запроса поиска)
- hotels.search.formData (Параметры формы поиска)
- hotels.search.resultData (Параметры результатов поиска)
- hotels.search.results (Результаты поиска)
- hotels.staticDataInfo (Информация о статике отелей)
- system.info (Служебная информация)
Модуль Автокомплит (autocomplete)
Автокомплит отелей и городов
- Request
- URI api/hotels/autocomplete/request/{query} :
- Response:
- hotels.autocomplete (Данные автокомплита)
- system.info (Служебная информация)
примеры:
- /api/hotels/autocomplete/request/mos : поиск "mos.."
Внимание! Язык, используемый в запросе, зависит от языка, установленного для пользователя. Английский используется для следующих языков:
'en' => 'English',
'de' => 'Deutsch',
'it' => 'Italiano',
'bg' => 'Български',
'es' => 'Español',
'nl' => 'Nederlands',
'tr' => 'Türkçe',
'il' => 'עברית',
'pt' => 'Português',
'tr' => 'Türk',
'fr' => 'Français',
'pl' => 'Polski'
Модуль Путеводитель (guide)
Модуль Autocomplete (autocomplete)
Автокомплит по IATA локациям
Аэропорты / Города имеющие IATA-совместимый код
- Request
- URI /api/guide/autocomplete/iata/{query}
- Response:
примеры:
- /api/guide/autocomplete/iata/mo : поиск "mo.."
- /api/guide/autocomplete/iata/le/noAltLayout : поиск "le.." без исправления раскладки
Автокомплит по городам
- Request
- URI /api/guide/autocomplete/cities/title/{countryCode}
- Response:
примеры:
- /api/guide/autocomplete/cities/мос : поиск "мос.."
- /api/guide/autocomplete/cities/мос/RU : поиск "мос.." в стране с кодом countryCode
Получение информации о воздушном судне(aircraft)
- Request
- URI /api/guide/aircrafts/{code}
- Response:
Получение информации о авиакомпании(airline)
- Request
- URI /api/guide/airlines/{codeIATA}
- URI api/guide/airlines/all (информация обо всех авикомпаниях)
- Response:
Получение информации об аэропорте(airport)
- Request
- URI /api/guide/airports/{codeIATA}
- Response:
Получение информации о городе(city)
- Request
- URI /api/guide/cities/{id}
- Response:
Получение информации о стране(country)
- Request
- URI /api/guide/countries/{code}
- Response:
Получение информации об отеле(hotel)
- Request
- URI /api/guide/hotels/{id}
- Response:
Получение информации об отелях в выбранном городе
- Request
- URI /api/guide/hotels/{id}/getByCityId
- Response:
Модуль Заказов (order)
Модуль аутентификации
Внимание, для сохранения статуса авторизованного пользователя запросы должны быть отправлены с поддержкой cookie
(Параметр withCredentials = true у объекта XmlHttpRequest в случае использования JS)
Запрос аутентификации пользователя
- Request
- URI /api/order/auth/request
- POST request="order.auth.request" (Параметры запроса аутентификации)
- Response:
- order.auth.response (Результат аутентификации)
- system.info (Служебная информация)
Запрос восстановления пароля
- Request
- URI /api/order/auth/sendPasswordLink
- POST request="order.auth.sendPasswordLink" (Параметры запроса восстановления пароля)
- Response:
- order.auth.sendPasswordLinkResponse (Информация о результате операции)
- system.info (Служебная информация)
Запрос регистрации
- Request
- URI /api/order/auth/registration
- POST request="order.auth.registration" (Параметры запроса регистрации)
- Response:
- order.auth.registrationResponse (Информация о результате регистрации)
- system.info (Служебная информация)
Запрос на получение параметров капчи
- Request
- URI /api/order/auth/captchaParams
- Response:
- order.auth.captchaParamsResponse (Информация о параметрах капчи)
- system.info (Служебная информация)
Запрос проверки состояния заказа
- Request
- URI /api/order/auth/status
- POST request="order.auth.status" (Параметры запроса проверки состояния заказа)
- Response:
- order.auth.statusResponse (Информация о состоянии заказа)
- system.info (Служебная информация)
Модуль Протокорзина (reminder)
Получение истории заказов пользователя
- Request
- URI /api/order/reminder/orders
- Response:
- guide.countries.CODE (Информация о странах)
- guide.cities.ID (Информация о городах)
- guide.airports.CODE (Информация об аэропортах)
- order.reminder.orders (Информация о заказах)
- system.info (Служебная информация)
Модуль информации о системе (system)
Модуль служебной информации (info)
Получение данных о валютах
- Request
- URI /system/info/currencyRates
- Response:
- system.info.currencyRates (Служебная информация)
Объединение запросов
Есть возможность добавить в один запрос контент от дополнительных запросов, чтобы сэкономить время загрузки фротэнд-приложения. Для этого нужно отправлять в запросе POST-параметр "resources", содержащий объект данных по дополнительным запросам в формате JSON:
- POST resources="JSON",
где JSON имеет формат:
{ "guide/airports/LON": {}, "guide/airports/PAR": {} }
пример: /api/flights/search/formData?test (тестовый скрипт)
Структуры данных
Авиабилеты (flights)
Поиск (search)
Данные формы поиска (formData)
flights.search.formData =
{ "maxLimits": { "passengerCount": { "ADT": "6", "SRC": "6", "YTH": "6", "CLD": "4", "INF": "2", "INS": "2" }, "totalPassengers": "9", "flightSegments": "5" }, "dateOptions": { "minOffset": 2, "maxOffset": 365, "incorrectDatesBlock": "on", "aroundDatesValues": [ 0, 1, 3 ] }, "useURLParams": "false", "showCitySwapBtn": "false", "passengersSelect": { "extendedPassengersSelect": "false", "fastPassengersSelect": [ { "label": "singleAdult", "set": { "ADT": 1 } }, { "label": "twoAdults", "set": { "ADT": 2 } }, { "label": "twoAdultsWithChild", "set": { "ADT": 2, "CLD": 1 } } ] }, "id": 49825, "uri": "/api/flights/search/formData/49825" }
Параметр | Описание | Тип | Значения |
---|---|---|---|
maxLimits | Ограничения на максимальные значения параметров | {} | ... |
|
Ограничения на максимальные значения кол-ва пассажиров по параметрам | {} | ... |
|
Максимальное количество взрослых (больше 12 лет) пассажиров | number | Целое положительное число |
|
Максимальное количество пожилых пассажиров | number | Целое положительное число |
|
Максимальное количество молодых пассажиров | number | Целое положительное число |
|
Максимальное количество детей (младше 10 лет) | number | Целое положительное число |
|
Максимальное количество младенцев | number | Целое положительное число |
|
Максимальное количество младенцев с местом | number | Целое положительное число |
|
Максимальное количество пассажиров | number | Целое положительное число |
|
Максимальное количество плеч сложного перелета | number | Целое положительное число |
dateOptions | Ограничения на разрешенные даты для поиска билетов | {} | ... |
|
Ближайшая разрешенная дата для поиска билетов (дней от текущего числа) | number | Целое положительное число |
|
Самая дальняя разрешенная дата для поиска билетов (дней от текущего числа) | number | Целое положительное число |
|
Включить блокировку некорректных дат | boolean | Логический тип |
|
Допустимые значения радиусов для поиска по окружным датам | [] | Массив |
useURLParams | Использовать параметры из URL, записанные в «чистом виде» | boolean | Логический тип |
showCitySwapBtn | Отображение кнопки, меняющей местами города вылета и прилета | boolean | Логический тип |
passengersSelect | Настройки выбора пассажиров | {} | ... |
|
Включить расширенный поиск пассажиров | boolean | Логический тип |
|
Комбинации пассажиров для быстрого поиска | [] | ... |
|
Название комбинации | String | Строка |
|
Набор пар "тип пассажира":количество | {} | Тип пассажира имеет одно из следующих значений:
Количество - неотрицательное целое число |
id | Идентификатор поиска | number | Целое положительное число |
uri | URI поиска | String | Строка вида "/api/flights/search/formData/id" |
Данные запроса поиска (request)
flights.search.request =
{ "segments": [ { "departure": { "IATA": "MOW", "isCity": true }, "arrival": { "IATA": "BER", "isCity": true }, "departureDate": "2015-05-10T00:00:00" } ], "passengers": [ { "type": "ADT", "count": 1 } ], "parameters": { "searchType": "OW", "direct": false, "aroundDates": 0, "serviceClass": "All", "airlines": ["UT"], "delayed": false "priceRefundType": null } }
Параметр | Описание | Тип | Значения |
---|---|---|---|
segments | Информация о сегментах перелета | [] | ... |
|
Информация об аэропорте отправления | {} | ... |
|
Информация об аэропорте назначения | {} | ... |
|
IATA код аэропорта | string | Строка из 3-х заглавных латинских букв |
|
Признак, что в качестве точки отправления указан код города-агрегатора аэропортов | boolean | Логический тип |
|
Дата отправления | string | Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601) |
passengers | Информация о пассажирах, для которых требуется найти перелёт | [] | ... |
|
Тип пассажира | string | Одно из следующих значений:
|
|
Число пассажиров данного типа | number | Целое положительное число |
parameters | Параметры поиска | {} | ... |
|
Тип поиска | string | Строка, принимающая одно из значений:
|
|
Признак поиска только прямых перелетов | boolean | Логический тип |
|
Поиск по окружным датам – ±X дней к выбранной дате вылета | number | Положительное число |
|
Тип предпочитаемого класса обслуживания | string | Строка, принимающая одно из значений:
|
|
Предпочитаемые авиакомпании | [] | Массив IATA кодов авиакомпании |
|
Признак отложенного поиска. Если delayed=true,
то поиск не запускается, а сохраняется в базу. Поиск запустится при отправке запроса на получение его результатов. |
boolean | Логический тип |
|
Признак возвратности тарифа, где
|
string | Строка, принимающая одно из значений:
|
Данные запроса поиска перелетов по расписанию (scheduleRequest)
flights.search.scheduleRequest =
{ "scheduleRequest": { "id": 84880, "uri": "/api/flights/search/scheduleRequest/84880", "departure": { "IATA": "MOW", "isCity": true, "cityId": 58165 }, "arrival": { "IATA": "LED", "isCity": false, "cityId": 58166 }, "datePeriodBegin": "2016-02-07", "datePeriodEnd": "2016-04-10", "direct": true },
Параметр | Описание | Тип | Значения |
---|---|---|---|
scheduleRequest | Информация о параметрах запроса поиска расписания перелетов | {} | ... |
|
Номер поиска | number | ... |
|
Адрес на получение результатов поиска | string | ... |
|
Информация об аэропорте отправления | {} | ... |
|
Информация об аэропорте назначения | {} | ... |
|
IATA код аэропорта | string | Строка из 3-х заглавных латинских букв |
|
Признак, что в качестве точки отправления указан код города-агрегатора аэропортов | boolean | Логический тип |
|
Номер города из путеводителя | number | ... |
|
Дата начиная с которой будет расписание перелетов | string | Дата в формате ГГГГ-ММ-дд |
|
Дата по которую будет найдено расписание | string | Дата в формате ГГГГ-ММ-дд |
|
Признак поиска только прямых перелетов | boolean | Логический тип |
Данные результатов поиска (results)
flights.search.results =
"results": { "flightGroups": [ { "segments": [ "S1", "S2" ], "flights": [ { "id": 601010001, "price": "P1" } ] } ], "groupsData": { "prices": { "P1": { "flightPrice": { "amount": 119.01888888889, "currency": "USD" }, "agencyCharge": { "amount": -2.9711111111111, "currency": "USD" }, "totalPrice": { "amount": 119.01888888889, "currency": "USD" }, "priceWithoutPromocode": { "amount": 110.01888888889, "currency": "USD" }, "validatingCompany": "PS", "refundable": false, "privateFareInd": false, "ticketTimeLimit": "2015-05-27T23:59:59", "service": "SABRE", "avlSeatsMin": 6, "pricingDebug": { "link": "index.php?go=debug/pricing&flight_id=601010001", "text": "Комиссия: Нет" }, "warnings": { "insBookingNotAllowedBySupplier": "Бронирование отдельного сидячего места для младенца не допускается перевозчиком" }, "passengerFares": [ { "type": "ADT", "count": 1, "baseFare": { "amount": 50, "currency": "EUR" }, "equivFare": { "amount": 55, "currency": "USD" }, "totalFare": { "amount": 121.99, "currency": "USD" }, "taxes": [ { "YQF": { "amount": 16.5, "currency": "USD" } }, { "YQI": { "amount": 1, "currency": "USD" } }, { "YRI": { "amount": 10, "currency": "USD" } }, { "YRI": { "amount": 10, "currency": "USD" } }, { "RI": { "amount": 8.69, "currency": "USD" } }, { "UH": { "amount": 6.3, "currency": "USD" } }, { "UA": { "amount": 4, "currency": "USD" } }, { "UD": { "amount": 2, "currency": "USD" } }, { "YK": { "amount": 8.5, "currency": "USD" } } ], "tariffs": [ { "code": "JAPOWPS4", "segNum": 0, "routeNumber": 0 }, { "code": "JAPOWPS4", "segNum": 1, "routeNumber": 0 } ] } ], "segmentInfo": [ { "segNum": 0, "bookingClass": "J", "serviceClass": "Economy", "avlSeats": 6, "freeBaggage": [ { "passtype": "ADT", "value": 1, "measurement": "pc" } ] }, { "segNum": 1, "bookingClass": "J", "serviceClass": "Economy" "avlSeats": 8, "freeBaggage": [ { "passtype": "ADT", "value": 1, "measurement": "pc" } ] } ], "id": "P1" } }, "segments": { "S1": { "id": "S1", "depAirp": "DME", "arrAirp": "KBP", "routeNumber": 0, "operatingCompany": "PS", "marketingCompany": "PS", "flightNumber": "576", "aircraftType": "73H", "depDateTime": "2015-07-06T06:35:00", "arrDateTime": "2015-07-06T08:05:00", "depTerminal": "", "arrTerminal": "", "flightTime": 90, "eTicket": true, "stopPoints": [ { "airportCode": "DME", "cityCode": "MOW", "utc" => null, "terminal": "A", "depDateTime": "2015-07-06T07:35:00", "arrDateTime": "2015-07-06T07:55:00", "passengerLanding": null, } ] }, "S2": { "id": "S2", "depAirp": "KBP", "arrAirp": "CDG", "routeNumber": 0, "operatingCompany": "PS", "marketingCompany": "PS", "flightNumber": "127", "aircraftType": "73J", "depDateTime": "2015-07-06T12:50:00", "arrDateTime": "2015-07-06T09:20:00", "depTerminal": "", "arrTerminal": "", "flightTime": 210, "eTicket": true, "stopPoints": null } } }, "info": { "errorCode": null, "errorMessageEng": null }, "id": 49825, "uri": "/api/flights/search/results/49825", "matrixUri": "/api/flights/search/results/49821", }
Параметр | Описание | Тип | Значения |
---|---|---|---|
flightGroups | Группа перелетов | [] | Массив пуст, если
|
|
Сегмент перелета | [] | Массив пуст, если поиск был сделан по окружным датам |
|
Массив перелетов | [] | .. |
|
Идентификатор перелета | number | Число |
|
Код цены | string | Строка |
groupsData | Информация о группах перелетов | {} | ... |
|
Информация о ценах | {} или [] | Пуст, если
|
|
Цена перелета по тарифу | {} | ... |
|
Сумма | number | Дробное число |
|
Код валюты | string | Строка в формате ISO 4217(трёхбуквенный алфавитный код) |
|
Агентский сбор | {} | ... |
|
Итоговая цена | {} | ... |
|
Цена без промокода | {} | Если промокод не введен, null |
|
Код валидирующего перевозчика, предоставляющего данную цену | string | Строка из 2 знаков (букв латинского алфавита и цифр) |
|
Тип возвратности билета по перелёту с данной ценой | boolean | логический тип |
|
Признак наличия приватных тарифов в данной цене | boolean | логический тип |
|
Тайм-лимит данной цены (цена действительная до) | string | Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601) |
|
Минимальное кол-во доступных мест | number | Целое положительное число |
|
Данные о ссылке на ценообразование | {} | ... |
|
Ссылка на ценообразование для данного перелета | string | Строка вида "index.php?go=debug/pricing&flight_id={id}" |
|
Текст ссылки | string | Строка может иметь вид:
|
|
Тип ГДС | string | Строка |
|
Массив предупреждений | {} | Объект |
|
Массив ценовых составляющих по типам пассажиров | [] | ... |
|
Тип пассажира | string | Одно из следующих значений:
|
|
Количество пассажиров данного типа | number | Целое положительное число |
|
Базовая цена (только тарифы без такс) для 1 пассажира данного типа | {} | ... |
|
Базовая цена в эквивалентной валюте для 1 пассажира данного типа. | {} | Формат элемента аналогичен элементу BaseFare |
|
Полная цена (тарифы + таксы) для 1 пассажира данного типа в эквивалентной валюте. | {} | Формат элемента аналогичен элементу BaseFare. |
|
Контейнер для такс для данной ценовой составляющей | [] | ... |
|
Контейнер для тарифов данной ценовой составляющей | [] | ... |
|
Код тарифа | string | Строка |
|
Номер сегмента, для которого применяется данный тариф | number | Целое число |
|
Соответствие сегментам из SRO(номер плеча) | number | Целое число |
|
Допустимая мера бесплатного провоза багажа | [] | ... |
|
Тип пассажира, для которого определена мера | string | Аналогично type |
|
Количественно значение для допустимого количества багаж | number | Целое число |
|
Мера количества багажа | string | Строка |
|
Информация о сегментах | [] | ... |
|
Номер сегмента | number | Целое число |
|
Класс бронирования | string | Строка, состоящая из 1 латинской буквы |
|
Класс обслуживания | string | Строка, принимающая одно из значений:
|
|
Число доступных мест на сегменте | number | Целое положительное число |
|
Идентификатор цены | string | Строка |
|
Подробное описание сегментов перелетов | {} или [], если нет результатов поиска или поиск не найден | ... |
|
Идентификатор сегмента | string | Строка |
|
IATA код аэропорта отправления | string | Строка из 3 букв латинского алфавита |
|
IATA код аэропорта прибытия | string | Строка из 3 букв латинского алфавита |
|
Соответствие сегментам из SRO(номер плеча) | number | Целое число |
|
(IATA)Код оперирующего перевозчика | string | Строка из 2 знаков (букв латинского алфавита и цифр) |
|
Код маркетингого перевозчика | string | Строка из 2 знаков (букв латинского алфавита и цифр) |
|
Номер рейса для данного сегмента перелёта | number | Целое число |
|
Время перелета на сегменте | number/null | Целое число или null |
|
Код типа самолёта | string | Строка |
|
Дата и время отправления | string | Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601) |
|
Дата и время прибытия | string | Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601) |
|
Код терминала отправления | string | Строка |
|
Код терминала прибытия | string | Строка |
|
Время в пути в минутах | number | Целое положительное число |
|
Признак возможности выписки электронного билета на данном сегменте | boolean | логический тип |
|
Информация о технических остановках | [] | Массив объектов или null, если остановок нет |
|
IATA код аэропорта точки остановки | string | Строка из 3 букв латинского алфавита |
|
Код города точки остановки | string | Строка из 3 букв латинского алфавита |
|
Часовой пояс точки остановки | string | логический тип |
|
Терминал в аэропорте | string | логический тип |
|
Признак возможности выписки электронного билета на данном сегменте | string | логический тип |
|
Признак возможности выписки электронного билета на данном сегменте | string | Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601) |
|
Флаг ожидания в самолете | boolean или null | Логический тип, есть только у брони, у результатов поиска нет, на данный момент парсится только для Галилео |
|
Информация об успешности/неуспешности поиска | {} | |
|
Код ошибки | number | Число, может иметь следующие значения:
|
|
Сообщение об ошибке | string | Строка, принимающая следующие значения:
|
id | Идентификатор поиска | number | Число |
uri | URI поиска | string | Строка вида /api/flights/search/results/id |
matrixUri | URI поиска c матрицей окружных дат(параметр присутствует только если поиск сделан из матрицы) | string | Строка вида /api/flights/search/results/matrixSearchId |
Формирование перелета из сгруппированных данных
Структура перелета
flight:{ id, typeInfo: { directionType } segments:[ segment: { id, depAirp:{ airportCode, cityCode, UTC, terminal }, arrAirp:{...}, flightNumber, flightTime, opAirline, markAirline, aircraftType, depDateTime, arrDateTime, bookingClass:{ baseClass, bookingClassCode, freeSeatCount }, eTicket, } ], priceInfo:[ price:{ id, validatingCompany, refundable, privateFareInd, ticketTimeLimit, service, passengerFares:[ passengerFare:{ type, quantity, baseFare:{ amount, currency }, equivFare:{...}, totalFare:{...}, taxes:[ tax:{ amount, currency, taxCode }, ... ], tariffs:[ tariff:{ code, segNum, freeBaggage:{ passtype, value, measure } }, ... ] } ] } ] }
Из flightGroups берем коды сегментов перелета, по ним получаем информацию о сегментах из groupsData.segments По flights.price в groupsData.prices ищем код цены, получаем информацию о цене перелета
- По groupsData.prices.CODE.validatingCompany получаем информацию о валидирующем переводчике из guide.airlines
- Связываем тариф и сегмент, для которого он применяется, по segNum в тарифе и коду сегмента
- Из segmentInfo берем класс обслуживания и класс бронирования и связываем с сегментом по segNum
- По groupsData.segments.depAirp и groupsData.segments.arrAirp получаем информацию из guide.airports
- По groupsData.segments.operatingCompany и groupsData.segments.marketingCompany получаем информацию из guide.airlines
- По groupsData.segments.aircraftType получаем информацию из guide.aircrafts
- Связываем тариф и сегмент, для которого он применяется, по segNum в тарифе и коду сегмента
Данные результатов поиска расписания перелетов (scheduleResults)
flights.search.scheduleResults =
"scheduleResults": { "flights": { "F1": [{ "id": null, "depAirp": "DME", "arrAirp": "LED", "routeNumber": 1, "operatingCompany": "YC", "marketingCompany": "YC", "aircraftType": "320", "flightNumber": "6", "depTerminal": "A", "arrTerminal": "1", "flightTime": 80, "eTicket": true, "depTime": "01:30", "arrTime": "02:50", "depDateShift": 0, "arrDateShift": 0, "serviceClasses": ["Business", "Economy"], "schedulePeriod": { "startDate": "2015-09-23", "endDate": "2016-12-29", "daysOfWeek": [1, 2, 3, 4, 5, 6, 0] } }], "F2": [{ "id": null, "depAirp": "VKO", "arrAirp": "LED", "routeNumber": 1, "operatingCompany": "YC", "marketingCompany": "YC", "aircraftType": "CRJ", "flightNumber": "5", "depTerminal": "A", "arrTerminal": "1", "flightTime": 60, "eTicket": true, "depTime": "03:00", "arrTime": "04:00", "depDateShift": 0, "arrDateShift": 0, "serviceClasses": ["Economy"], "schedulePeriod": { "startDate": "2015-10-06", "endDate": "2017-02-19", "daysOfWeek": [2, 0] } }] }, "dates": { "2016-02-07": ["F1", "F2", "F3"], "2016-02-08": ["F1", "F3", "F4"], }, "info": { "errorCode": null, "errorMessageEng": null }, "id": 84880, "uri": "/api/flights/search/scheduleResults/84880" }
Параметр | Описание | Тип | Значения |
---|---|---|---|
scheduleResults | Информация о результатах поиска | {} | ... |
|
Массив найденных перелетов | [] | ... |
|
Идентификатор перелета | number | Число |
|
Код аэропорта вылета | string | Трех-буквенный код аэропорта |
|
Код аэропорта прилета | string | Трех-буквенный код аэропорта |
|
Соответствие сегментам из SRO(номер плеча) | number | Целое число |
|
(IATA)Код оперирующего перевозчика | string | Строка из 2 знаков (букв латинского алфавита и цифр) |
|
Код маркетингого перевозчика | string | Строка из 2 знаков (букв латинского алфавита и цифр) |
|
Код типа самолёта | string | Строка |
|
Номер рейса для данного сегмента перелёта | number | Целое число |
|
Код терминала отправления | string | Строка |
|
Код терминала прибытия | string | Строка |
|
Время перелета на сегменте | number/null | Целое число или null |
|
Признак возможности выписки электронного билета на данном сегменте | boolean | логический тип |
|
Время отправки | string | Время в формате чч:мм |
|
Время прибытия | string | Время в формате чч:мм |
|
Смещение дня вылета относительно даты вылета первого сегмента всего перелёта | number | целое число |
|
Смещение дня прибытия относительно даты вылета первого сегмента всего перелёта | number | целое число |
|
Массив доступных классов перелетов | [] | Возможные типы классы (Business, Economy, First) |
|
Расписание, по которому совершается перелет | {} | ... |
|
Дата с которой совершается полет | string | Дата в формате гггг-ММ-дд |
|
Дата после которой данные перелеты прекратятся | string | Дата в формате гггг-ММ-дд |
|
Дни недели по которым совершается перелет | [] | Цифровые обозначения дней недели (1 - понедельник, ..., 6 - суббота, 0 - воскресение) |
|
Расписание перелетов по дням | {} | Каждой дате соответствует список перелетов, который совершаются в этот день |
|
Информация об успешности/неуспешности поиска | {} | |
|
Код ошибки | number | Число, может иметь следующие значения:
|
|
Сообщение об ошибке | string | Строка, принимающая следующие значения:
|
|
Номер поиска | number | ... |
|
Адрес для получения результатов | string | Ссылка вида /api/flights/search/scheduleResults/{$id} |
Настройки выдачи результатов (resultData)
flights.search.resultData =
{ "postFilters": { "postFiltersSort": { "transfersCount", "departureAirport", "arrivalAirport", "departureTime", "arrivalTime", "timeEnRoute", "transfersDuration", "carrier", "price" }, "showPostFilterHint": false }, "defaultSort": "durationOnLeg", "defaultShowVariants": 100, "useHintOverlay": true, "showBlocks": { "useShowCase": true, "showBestOffers": true, "showHotelOffer": true, "useFlightCompareTable": true }, "searchTimeout": { "useSearchTimeout": true, "warningBeforeSearchTimeout": 600, "searchTimeout": 720 } }
Параметр | Описание | Тип | Значения |
---|---|---|---|
postFilters | Настройки постфильтров | {} | ... |
|
Порядок постфильтров | [] | Упорядоченные названия постфильтров. Возможные названия:
|
|
Показать подсказку к постфильтрам | boolean | Логический тип |
defaultSort | Тип выбранной по умолчанию сортировки | string | Строка, принимающая следующие значения:
|
defaultShowVariants | Количество показанных изначально вариантов в блоке “Все варианты” | number | Целое положительное число |
useHintOverlay | Показать оверлей “подсказки” | boolean | Логический тип |
showBlocks | Настройки отображения дополнительных блоков | {} | ... |
|
Показать витрину | boolean | Логический тип |
|
Показать блок с предложениями от лучших авиакомпаний | boolean | Логический тип |
|
Показать блок с предложением отелей | boolean | Логический тип |
|
Использовать сравнительную таблицу перелетов | boolean | Логический тип |
searchTimeout | Настройки устаревания результатов поиска | {} | ... |
|
Использовать таймер устаревания результатов поиска | boolean | Логический тип |
|
Время в секундах, после которого появится предупреждение, что поиск устаревает | number | Целое положительное число |
|
Время в секундах, через которое поиск устаревает | number | Целое положительное число |
Матрица окружных дат (resultMatrix)
flights.search.resultMatrix =
Например, если опция поиска по окружным датам предполагает поиск при ±3 дня, то пользователю отображается матрица дат размером 7x1 ячеек для маршрута «В одну сторону» или 7x7 ячеек для маршрута «Туда и обратно». В каждой ячейке матрицы указана минимальная стоимость перевозки, ячейки с наиболее дешевыми вариантами выделены другим цветом. При нажатии на стоимость в таблице пользователь переходит на страницу результатов поиска на выбранную дату для выбора конкретного варианта перелета.
{ "rangeData": [ { "uri": "/api/flights/search/results/53159/2015-06-12/2015-06-17", "flightDate": "2015-06-12", "flightDateBack": "2015-06-17", "minPriceFlight": { "minPrice": { "amount": "16851", "currency": "RUB" }, "carrier": "OS", "segments": [ { "routeNumber": 0, "serviceClass": "economy", "depDateTime": "2015-06-12T14:40:00", "arrDateTime": "2015-06-12T17:20:00", "depAirp": "DME", "arrAirp": "CDG" }, { "routeNumber": 1, "serviceClass": "economy", "depDateTime": "2015-06-17T07:15:00", "arrDateTime": "2015-06-17T10:00:00", "depAirp": "CDG", "arrAirp": "DME" } ] } }, { "uri": "/api/flights/search/results/53159/2015-06-12/2015-06-18", "flightDate": "2015-06-12", "flightDateBack": "2015-06-18", "minPriceFlight": { "minPrice": { "amount": "16222", "currency": "RUB" }, "carrier": "OS", "segments": [ { "routeNumber": 0, "serviceClass": "economy", "depDateTime": "2015-06-12T14:40:00", "arrDateTime": "2015-06-12T17:20:00", "depAirp": "DME", "arrAirp": "CDG" }, { "routeNumber": 1, "serviceClass": "economy", "depDateTime": "2015-06-18T17:25:00", "arrDateTime": "2015-06-18T20:40:00", "depAirp": "CDG", "arrAirp": "DME" } ] } } ] }
Параметр | Описание | Тип | Значения |
---|---|---|---|
rangeData | Массив данных о каждой ячейке матрицы | [] | ... |
|
Cсылка получения результатов на один день | string | Строка вида /api/flights/search/results/matrixSearchId/flightDate/flightDateBack |
|
Дата перелета | string | Строка в формате yyyy-MM-dd |
|
Дата обратного перелета | string | Строка в формате yyyy-MM-dd для RT, null для OW |
|
Информация о самом дешевом перелете для выбранных дат | {} | ... |
|
Информация о минимальной цене | {} | ... |
|
Сумма | string | Вещественное число |
|
Код валюты | string | Строка в формате ISO 4217(трёхбуквенный алфавитный код) |
|
IATA код перевозчика | string | Строка из 2 знаков (букв латинского алфавита и цифр) |
|
Массив сегментов самого дешевого перелета | [] | ... |
|
Соответствие сегментам из SRO | number | Целое число |
|
Класс обслуживания | string | Строка, принимающая одно из значений:
|
|
Дата и время отправления | string | Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601) |
|
Дата и время прибытия | string | Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601) |
|
IATA код аэропорта отправления | string | Строка из 3 букв латинского алфавита |
|
IATA код аэропорта прибытия | string | Строка из 3 букв латинского алфавита |
Выдача истории поиска по текущему пользователю (history)
flights.search.history =
[ { "request": { "id": 59673, "uri": "/api/flights/search/request/59673", "segments": [ { "departure": { "IATA": "MOW", "isCity": true, "cityId": 58165 }, "arrival": { "IATA": "BER", "isCity": true, "cityId": 22046 }, "departureDate": "2015-09-10T00:00:00" } ], "passengers": [ { "type": "ADT", "count": 1 } ], "parameters": { "searchType": "OW", "direct": false, "aroundDates": 0, "serviceClass": "Economy", "airlines": [], "delayed": true } }, "formData": { "maxLimits": { "passengerCount": { "ADT": "5", "SRC": "5", "YTH": "5", "CLD": "5", "INF": "1", "INS": "3" }, "totalPassengers": "6", "flightSegments": "6" }, "dateOptions": { "minOffset": 0, "maxOffset": 365, "incorrectDatesBlock": true, "aroundDatesValues": [ 0, 1, 3 ] }, "useURLParams": true, "showCitySwapBtn": false, "passengersSelect": { "extendedPassengersSelect": true, "fastPassengersSelect": [ { "label": "singleAdult", "set": { "ADT": 1 } }, { "label": "twoAdults", "set": { "ADT": 2 } } ] }, "id": 59673, "uri": "/api/flights/search/formData/59673" }, "hasResults": true, "resultsCount": 125, "isDateRange": false } ]
Названия и значения полей аналогичны flights.search.request (параметры запроса поиска) и flights.search.formData (параметры формы поиска)
Получение информации о перелёте(flightInfo)
flights.search.flightInfo =
{ "isAvail": true, "priceStatus": { "changed": false, "oldValue": { "amount": 89752, "currency": "RUB" }, "newValue": { "amount": 89752, "currency": "RUB" } }, "tariffRules": { "BNOW": [ { "name": "RULE APPLICATION AND OTHER CONDITIONS", "text": "NOTE - THE FOLLOWING TEXT IS INFORMATIONAL AND NOT\nVALIDATED FOR AUTOPRICING...", "code": "50" }, { "name": "ELIGIBILITY", "text": "NO ELIGIBILITY REQUIREMENTS APPLY.", "code": "01" } ], "QNCOW": [ { "name": "RULE APPLICATION AND OTHER CONDITIONS", "text": "NOTE - THE FOLLOWING TEXT IS INFORMATIONAL AND NOT\nVALIDATED FOR AUTOPRICING...", "code": "50" }, { "name": "ELIGIBILITY", "text": "NO ELIGIBILITY REQUIREMENTS APPLY.", "code": "01" } ] }, "createOrderLink": "/create__order?flightId=767910178" } } }
Параметр | Описание | Тип | Значения |
---|---|---|---|
isAvail | Флаг доступности перелёта | boolean | логический тип |
priceStatus | Информация о статусе цены | {} | ... |
|
Флаг, показывающий, была ли изменена цена | boolean | логический тип |
|
Старое значение цены | {} | ... |
|
Сумма | string | Вещественное число |
|
Код валюты | string | Строка в формате ISO 4217(трёхбуквенный алфавитный код) |
|
Новое значение цены | {} | аналогичен oldValue |
tariffRules | Информация о тарифных правилах | {} | ... |
|
Название правила | string | Строка |
|
Описание правила | string | Строка |
|
Код правила | string | Строка |
createOrderLink | Ссылка на создание заказа | string | Строка |
Вспомогательные функции (utils)
Получение данных по солнечной стороне (sunInfo)
flights.utils.sunInfo =
{ "info": { "sunPercentLeft": 0, "sunPercentRight": 0 }, "message": "Солнце не будет мешать во время полета" }
Параметр | Описание | Тип | Значения |
---|---|---|---|
sunPercentLeft | Процент времени от общей длительности перелета нахождения солнца с левой стороны борта самолета | number | Целое положительно число не большее 100 |
sunPercentRight | Процент времени от общей длительности перелета нахождения солнца с правой стороны борта самолета | number | Целое положительно число не большее 100 |
message | Сообщение с информацией о проценте времени нахождения солнца с определенной стороны | string | Строка |
Отели (hotels)
Поиск (search)
Данные формы поиска (formData)
hotels.search.formData =
{ "citySuggestions": [ 58165, 15777 ], "maxLimits": { "guestsCountInRoom": { "ADT": 4, "CLD": 4, "total": 6 }, "roomsCount": 4, "childrenAge": 17 }, "dateOptions": { "minOffset": 0, "maxOffset": 3695, "maxStayDays": 21 }, "roomsSelectionTemplates": { "useExtendedSelect": true, "fastSelect": [ { "ADT": 1, "CLD": 0, "childAges": [], "label": "singleAdult" }, { "ADT": 2, "CLD": 0, "childAges": [], "label": "twoAdults" } ] }, "id": 49825, "uri": "/api/hotels/search/formData/49825" }
Параметр | Описание | Тип | Значения |
---|---|---|---|
citySuggestions | Массив идентификаторов городов, которые выводятся для примера на форме поиска | [] | ... |
maxLimits | Ограничения на максимальные значения параметров | {} | ... |
|
Ограничения на максимальные значения кол-ва человек в комнате | {} | ... |
|
Максимальное количество взрослых | number | Целое положительное число |
|
Максимальное количество детей | number | Целое положительное число |
|
Максимальное количество человек в комнате | number | Целое положительное число |
|
Количество комнат | number | Целое положительное число |
|
Максимальный возраст, при котором гость считается ребенком | number | Целое положительное число |
dateOptions | Ограничения на разрешенные даты для поиска отелей | {} | ... |
|
Ближайшая разрешенная дата для поиска отеля (дней от текущего числа) | number | Целое положительное число |
|
Самая дальняя разрешенная дата для поиска отеля (дней от текущего числа) | number | Целое положительное число |
|
Максимальное количество ночей, проведенных в отеле | number | Целое положительное число |
roomsSelectionTemplates | Настройки выбора гостей | {} | ... |
|
Включить расширенный поиск пассажиров | boolean | Логический тип |
|
Комбинации для быстрого поиска | [] | ... |
|
Максимальное количество взрослых | number | Целое положительное число |
|
Максимальное количество детей | number | Целое положительное число |
|
массив возрастов детей | number | Целое положительное число |
|
Название комбинации | String | Строка |
id | Идентификатор поиска | number | Целое положительное число |
uri | URI поиска | String | Строка вида "/api/hotels/search/formData/id" |
Данные запроса поиска (request)
hotels.search.request =
{ "cityId": 63052, "hotelId": 50778, "checkInDate": "2015-12-16T00:00:00", "checkOutDate": "2015-12-23T00:00:00", "isDelayed": false, "rooms": [ { "ADT": 1, "CLD": 1, "childAges": [ 10 ] } ], "id": 49825, "uri": "/api/hotels/search/request/49825" }
Параметр | Описание | Тип | Значения |
---|---|---|---|
cityId | Идентификатор города, в котором расположен отель | int | Целое число |
hotelId | Идентификатор отеля(необязательный параметр) | int | Целое число |
checkInDate | Дата прибытия в отель | String | Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601) |
checkOutDate | Дата выселения из отеля | String | Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601) |
isDelayed | Признак отложенного поиска | boolean | Логический тип |
rooms | Информация о номерах | [] | ... |
|
Количество взрослых в номере | int | Целое число |
|
Количество детей в номере (необязательный параметр, если в номере нет детей) | int | Целое число |
|
Массив возрастов детей (необязательный параметр, если в номере нет детей) | [] | ... |
id | Идентификатор поиска | number | Целое положительное число |
uri | URI поиска | String | Строка вида "/api/hotels/search/request/id" |
Данные ответа на запрос поиска (response)
hotels.search.response =
{ "id": 20898 }
Параметр | Описание | Тип | Значения |
---|---|---|---|
id | Идентификатор поиска, полученный от поставщика | int | Целое число |
Настройки выдачи результатов (resultData)
hotels.search.resultData =
{ "showPostFilterHint": true, "defaultSort": "price", "showBlocks": { "useShowCase": true, "showFlightsOffer": true, "showMap": true, "showHotelsWatched": true }, "defaultShowVariants": 100, "showSupplier": true, "searchTimeout": { "useSearchTimeout": true, "warningBeforeSearchTimeout": 540, "searchTimeout": 600 }, "promotionalHotels": [ 50216654, 33961705 ] }
Параметр | Описание | Тип | Значения |
---|---|---|---|
showPostFilterHint | Показать подсказку к постфильтрам | boolean | Логический тип |
defaultSort | Тип выбранной по умолчанию сортировки | string | Строка, принимающая следующие значения:... |
showBlocks | Настройки отображения дополнительных блоков | {} | ... |
|
Показать витрину | boolean | Логический тип |
|
Показать блок с предложением перелетов | boolean | Логический тип |
|
Показать карту | boolean | Логический тип |
|
Показать блок с просмотренными отелями из данных результатов | boolean | Логический тип |
defaultShowVariants | Число вариантов, показанных по умолчанию | number | Целое положительное число |
showSupplier | Показывать поставщика в результатах поиска | boolean | Логический тип |
searchTimeout | Настройки устаревания результатов поиска | {} | ... |
|
Использовать таймер устаревания результатов поиска | boolean | Логический тип |
|
Время в секундах, после которого появится предупреждение, что поиск устаревает | number | Целое положительное число |
|
Время в секундах, через которое поиск устаревает | number | Целое положительное число |
promotionalHotels | Массив идентификаторов отелей, которые будут рекламироваться | [] | Массив |
Данные результатов поиска (results)
hotels.search.results =
{ "isFinished": true, "roomTypes": [ { "id": 0, "name": "Superior Double", "commonName": "Superior Double" }, { "id": 1, "name": "Superior Twin conventionalized", "commonName": "Superior Twin" }, { "id": 2, "name": "Junior Suite conventionalized", "commonName": "Junior Suite" }, { "id": 3, "name": "Economy (without windows) Single ", "commonName": "Economy Single" } ], "roomMeals": [ { "id": 0, "code": "BB", "name": "Continental Breakfast" }, { "id": 1, "code": "BB", "name": "Buffet Breakfast" }, { "id": 2, "code": "BB", "name": "Breakfast" } ], "roomRates": [ { "id": 0, "price": { "amount": 246.86, "currency": "EUR" }, "isSpecialOffer": false, "visaSupportProvided": false, "isNonRefundable": false, "bookingRemarks": "", "cancellationRules": [] }, { "id": 1, "price": { "amount": 246.86, "currency": "EUR" }, "isSpecialOffer": false, "visaSupportProvided": false, "isNonRefundable": false, "bookingRemarks": "", "cancellationRules": [] }, { "id": 2, "price": { "amount": 299.75, "currency": "EUR" }, "isSpecialOffer": false, "visaSupportProvided": false, "isNonRefundable": false, "bookingRemarks": "", "cancellationRules": [] }, { "id": 3, "price": { "amount": 170.75, "currency": "EUR" }, "isSpecialOffer": false, "visaSupportProvided": false, "isNonRefundable": false, "bookingRemarks": "", "cancellationRules": [] } ], "roomsGroup": [ { "id": 0, "typeId": 0, "mealId": 0, "rateId": 0 }, { "id": 1, "typeId": 1, "mealId": 0, "rateId": 1 }, { "id": 2, "typeId": 2, "mealId": 0, "rateId": 2 } ], "cancellationRules": [], "hotels": { "50236286": { "id": 50236286, "name": "Danilovskaya", "roomGroups": [ { "searchRoomId": 0, "roomVariants": [ 0, 1, 2 ] } ] } }, "info": { "warnings": [], "errorCode": null, "errorMessageEng": null }, "id": "167", "uri": "/api/hotels/search/results/167" }
Параметр | Описание | Тип | Значения |
---|---|---|---|
isFinished | Признак полностью завершенного поиска | boolean | Логический тип |
roomTypes | Информация о найденных типах комнат | [] | ... |
|
Идентификатор типа комнаты в рамках данного поиска | number | Целое положительное число |
|
Название типа комнаты | string | Строка |
|
Распространенное название комнаты | string | Строка |
roomMeals | Информация о возможных типах питания | [] | ... |
|
Идентификатор типа питания в рамках этого результата поиска | number | Целое положительное число |
|
Название типа питания | string | Строка |
|
Код типа питания | string | Строка |
roomRates | Информация о стоимости комнат | [] | ... |
|
Идентификатор тарифа в рамках этого результата поиска | number | Целое положительное число |
|
Контейнер с информацией о валюте | {} | ... |
|
Сумма базовый цены | number | Дробное число |
|
Код валюты базовой цены | string | Строка |
|
является ли данный тариф специальным предложением | boolean | Логический тип |
|
Признак визовой поддержки отеля | boolean | Логический тип |
|
Признак возможности возврата | boolean | Логический тип |
|
Текст ремарок | string | Строка |
|
Набор идентификаторов правил отмены | [] | Массив целых положительных чисел |
roomsGroup | Информация о различных вариантах комнат | {} | ... |
|
Идентификатор комнаты | number | Целое положительное число |
|
Идентификатор типа комнаты | number | Целое положительное число |
|
Идентификатор типа питания | number | Целое положительное число |
|
Идентификатор тарифа | number | Целое положительное число |
cancellationRules | Информация о правилах отмены | [] | ... |
|
Идентификатор правила отмены в рамках результата данного поиска | number | Целое положительное число |
|
Время, до которого действует данное правило | string | Строка |
|
... | number | Число |
|
... | number | Число |
hotels | Информация об отелях | {} | ... |
|
Идентификатор отеля | number | Целое положительное число |
|
Название отеля | string | Строка |
|
Информация о комнатах в отеле | [] | ... |
|
Идентификатор комнаты в отеле в рамках данного поиска | number | Целое число |
|
Массив идентификаторов комнат - ссылки на roomsGroup | [] | |
info | Информация об успешности/неуспешности поиска | {} | |
|
Код ошибки | number | Число, может иметь следующие значения:
|
|
Сообщение об ошибке | string | Строка, принимающая следующие значения:
|
|
Массив предупреждений | [] |
Статика отелей (staticDataInfo)
Данные о статике отелей (staticDataInfo)
hotels.staticDataInfo =
{ "countries": [ { "id": 178, "name": "Russia", "isoCode": "RU" } ], "regions": [ { "id": 3000046, "name": "Москва", "countryId": 178 } ], "cities": [ { "id": 4754, "name": "Москва", "countryId": 178, "regionId": 3000046, "latitude": null, "longitude": null } ], "resorts": [ { "id": 1315, "name": "SHERSTON", "cityId": 4754 } ], "hotels": [ { "id": 163157, "name": "SHERSTON", "checkInTime": null, "checkOutTime": null, "starRating": 5, "category": null, "cityId": 4754, "resortId": null, "district": "", "posLatitude": null, "posLongitude": null, "description": null, "photos": [ "http://nt.natecnia.com/NT/photos/HOT/ES/best.western.dante.jumbotours/c_foto1173177694944.jpg", "http://nt.natecnia.com/NT/photos/HOT/ES/best.western.dante.jumbotours/c_foto1173177491528.jpg" ], "mainPhotoId": 0, "addresses": [ "MALLORCA 181", "MALLORCA 182" ], "features": { "CheckIn": { "typeName": "Круглосуточная регистрация", "featuresArray": [ "24h Reception", "Early check-in" ] } "Smoking": { "typeName": "Курение", "featuresArray": [ "Non Smoking Rooms" ] }, "Internet": { "typeName": "Интернет", "featuresArray": [ "Internet Corner ($)", "High- Speed Wireless Internet Access", "Wi-Fi (Public Areas)", "High Speed Internet Access" ] }, "ClimateControl": { "typeName": "Климат-контроль", "featuresArray": [ "Air Conditioning" ] }, "Safe": { "typeName": "Сейф", "featuresArray": [ "Safe" ] } }, "popularFeatures": [ "ExpressCheckIn", "WiFi", "ClimateControl" ], "distances": { "Subway Station": { "typeName": "Станция метро", "distancesArray": [ { "name": "Smolenskaya - Arbatsko-Pokrovskaya line", "isClose": false, "value": { "distance": 0.3, "measurement": "км", "transportType": null } }, { "name": "smolenskaya", "isClose": false, "value": { "distance": 0.3, "measurement": "км", "transportType": null } } ] }, "Bus Station": { "typeName": "Автобусная станция", "distancesArray": [ { "name": "", "isClose": true, "value": null } ] }, }, "customerRating": { "room": 9.1, "facilities": 7.7, "cleanness": 8.9, "food": 9.5, "staff": 8.2, "checkIn": 9.1, "valueForMoney": 9.6 }, "averageCustomerRating": { "value": 8.6, "description": "Хорошо" }, "usersOpinionInfo": { "opinionsCount": 2, "opinions": [ { "userName": "Варя", "mark": 1, "text": "Всё плохо" }, { "userName": "Бронислав", "mark": 5, "text": "Всё отлично!" } ] } } ], "popularHotelsFeatures": { "ExpressCheckIn": "Круглосуточная регистрация", "ConferenceFacilities": "услуги для проведения конференций", "Restaurant": "Ресторан", "Bar": "Бар", "Parking": "Парковка", "Children": "Услуги для клиентов с детьми", "WiFi": "WiFi", "BathroomAmenities": "Услуги для водных процедур", "Elevator": "Лифт", "ClimateControl": "Климат-контроль" } }
Параметр | Описание | Тип | Значения |
---|---|---|---|
countries | Массив стран | [] | ... |
|
Идентификатор страны в системе Немо2 | number | Целое положительное число |
|
Название страны | String | Строка |
|
ISO код страны | String | Строка из 2 букв(ISO 3166-1 alpha-2) |
regions | Массив регионов стран | [] | ... |
|
Идентификатор региона в системе Немо2 | number | Целое положительное число |
|
Название региона | String | Строка |
|
идентификатор страны в системе Немо2, которой принадлежит регион | number | Целое положительное число |
cities | Массив городов | [] | ... |
|
Идентификатор города в системе Немо2 | number | Целое положительное число |
|
Название города | String | Строка |
|
идентификатор страны в системе Немо2, которой принадлежит регион | number | Целое положительное число |
|
идентификатор региона в системе Немо2, которому принадлежит город | number | Целое положительное число |
|
Географическая широта города | number | Число |
|
Географическая долгота города | number | Число |
resorts | Информация о курортах | [] | ... |
|
Идентификатор курорта в системе Немо2 | number | Целое положительное число |
|
Название курорта | String | Строка |
|
Идентификатор города в системе Немо2, в котором находится курорт | number | Целое положительное число |
hotels | Информация об отелях | [] | ... |
|
Идентификатор отеля в системе Немо2 | number | Целое положительное число |
|
Название отеля | String | Строка |
|
Время заезда | String | Строка |
|
Время выезда | String | Строка |
|
Тип отеля | String | Строка |
|
Идентификатор города в системе Немо2, в котором находится отель | number | Целое положительное число |
|
идентификатор курорта в массиве resorts | number | Целое положительное число |
|
название района, в котором расположен отель | String | Строка |
|
Географическая широта отеля | number | Число |
|
Географическая долгота отеля | number | Число |
|
Время выезда | String | Строка |
|
Количество звезд | number | Целое число от 0 до 5 |
|
Описание отеля | String | Строка |
|
Массив фотографий отеля | [] | ... |
|
Идентификатор главного изображения | number | Целое число |
|
Информация об услугах, предоставляемых в отеле | {} | ... |
|
Идентификатор услуги(название группы услуг) | String | Строка |
|
Массив подробных описаний услуги | {} | Массив строк |
|
Список популярных услуг, предоставляемых отелем | [] | Массив |
|
Информация о расстояниях от отеля до важных объектов | {} | Объект |
|
Название типа объекта | String | Строка |
|
Массив объектов данного типа | {} | Объект |
|
Название объекта | String | Строка |
|
Признак того, что объект находится очень близко к отелю. Если имеет значение true, value=null | boolean | логический тип |
|
Информация о расстоянии/времени пути. Если она имеется, isClose=false | {} | ... |
|
Число единиц измерения | number | Число |
|
Единица измерения | String | Строка |
|
Тип способа перемещения, для которого актуальны distance и measurement | {} | ... |
|
Оценка отеля посетителями | [] | ... |
|
Оценка комнаты | number | Число |
|
Оценка бытовых удобств | number | Число |
|
Оценка чистоты | number | Число |
|
Оценка еды | number | Число |
|
Оценка обслуживающего персонала | number | Число |
|
Оценка регистрации | number | Число |
|
Оценка соотношения цены и качества | number | Число |
|
Данные о средней оценке отеля посетителями | [] | ... |
|
Оценка | number | Число |
|
Текствое описание(при оценке выше 7) | number | Число |
|
Информация об отзывах пользователей | {} | null, если нет отзывов |
|
Количество отзывов | number | Число |
|
Массив отзывов | [] | ... |
|
Имя пользователя, оставившего отзыв | string | Строка |
|
Оценка | number | Число |
|
Текст отзыва | string | Строка |
popularHotelsFeatures | Список популярных услуг, которые встречаются в данной выдаче | Объект вида "Ключ" => "Локальное название" | {} |
Полный список популярных услуг
Bar BathroomAmenities BusinessCenter ConferenceFacilities Children ClimateControl DisabledFacilities Elevator ExpressCheckIn Gym Laundry Meal Parking PetsAllowed Pool Restaurant SPA Transfer WiFi
Автокомплит отелей (autocomplete)
Автокомлит отелей (autocomplete)
hotels.autocomplete =
{ "autocomplete": { "cities": [{ "id": 4754, "name": "Москва", "country_code": "RU", "hotelsCount": 280, "country_name": "Россия" }, { "id": 14997, "name": "Моссель-Бей", "country_code": "ZA", "hotelsCount": 9, "country_name": "Южная Африка" }, { "id": 12838, "name": "Моссман", "country_code": "AU", "hotelsCount": 1, "country_name": "Австралия" }], "hotels": [{ "id": 50577298, "name": "Mosaic", "category": 4, "country_code": "TR", "cityName": "Istanbul", "country_name": "Турция" }, { "id": 50410601, "name": "Mosaic House", "category": 4, "country_code": "CZ", "cityName": "Prague", "country_name": "Чешская Республика" }, { "id": 50575348, "name": "Mosaic House", "category": 4, "country_code": "CZ", "cityName": "Prague", "country_name": "Чешская Республика" }], } } }
- id
Параметр | Описание | Тип | Значения |
---|---|---|---|
autocomplete | Блок ответа автокомлита | [] | ... |
|
Массив городов для автокомплита | [] | ... |
|
Номер города | integer | ... |
|
Название города | String | Строка |
|
Код страны | String | В формате ISO2 |
|
Количество отелей в городе | integer | ... |
|
Название страны | String | Строка |
|
Массив отелей | [] | ... |
Номер отеля | integer | ... | |
|
Название города | String | Строка |
|
Категория отеля | integer | Числа от 1 до 5, включительно |
|
Код страны | String | В формате ISO2 |
|
Название города | String | Строка |
|
Название страны | String | Строка |
Путеводитель (guide)
Страны (countries)
Данные по коду страны ISO 3166-1 alpha-2 (CODE)
guide.countries.CODE =
{ "code": "RU", "name": "Россия", "nameEn": "Russia" }
Параметр | Описание | Тип | Значения |
---|---|---|---|
RU | Код страны | string | Строка из 2 латинских букв |
name | Название страны | string | Строка |
nameEn | Английское название страны | string | Строка |
Города(cities)
Данные по идентификатору города
guide.cities.ID =
{ "IATA": "MOW", "name": "Москва", "nameEn": "Moscow", "countryCode": "RU", "id": 58165 }
Параметр | Описание | Тип | Значения |
---|---|---|---|
IATA | Код города | string | Строка из 3 букв латинского алфавита |
name | Название города | string | Строка |
nameEn | Английское название города | string | Строка |
countryCode | Код страны | string | Строка из 2 букв(ISO 3166-1 alpha-2) |
id | Код города | number | Число |
Воздушные суда (aircrafts)
Данные по коду воздушного судна
guide.aircrafts.CODE =
{ "id": 108, "name": "Yk 42", "nameEn": "YK 42", "manufacture": "ОКБ Яковлева", "originCountries": [ "RU" ], "distanceType": "medium_range", "fuselageType": "narrowbody", "capacity": "102 - 120", "cruiseSpeed": "730", "isTurbineAirctaft": false, "isHomeAirctaft": false, "image": { "image": "/static/images/guide_aircraft/images_php154_0.jpg", "icon": "/static/images/guide_aircraft_icon/images_php154_0.jpg", "height": 500, "width": 743 }, "map_image": { "image": "/static/images/guide_aircraft/map_image_php155_0.jpg", "icon": "/static/images/guide_aircraft_icon/map_image_php155_0.jpg", "height": 200, "width": 500 } }
Параметр | Описание | Тип | Значения |
---|---|---|---|
id | Идентификатор воздушного судна | number | число |
name | Название авиакомпании | string | Строка |
nameEn | Английское название авиакомпании | string | Строка |
manufacture | Компания-производитель | string | Строка |
originCountries | Набор IATA-кодов стран-производителей | [] | ... |
distanceType | Магистральность | string | Строка, принимающая следующие значения:
|
fuselageType | Фюзеляжность | string | Строка, принимающая следующие значения:
|
capacity | Вместимость | string | Строка вида (100 - 200) |
cruiseSpeed | Крейсерская скорость (км/ч) | number | Целое положительное число |
isTurbineAirctaft | Турбовинтовой | boolean | Логический тип |
isHomeAirctaft | Отечественный | boolean | Логический тип |
image | Данные о логотипе | {} | ... |
|
Ссылка на логотип | string | Строка, указывающая относительный путь к изображению |
|
Ссылка на иконку логотипа | string | Строка, указывающая относительный путь к изображению |
|
Высота логотипа | number | Целое положительное число |
|
Ширина логотипа | number | Целое положительное число |
map_image | Данные о схеме судна | {} | ... |
Аэропорты (airports)
Данные по IATA коду аэропорта
guide.airports.CODE =
{ "IATA": "DME", "name": "Домодедово, Москва", "nameEn": "Domodedovo, Moscow", "properName": "Домодедово", "properNameEn": "Domodedovo", "cityId": 58165, "isAggregation": false, "countryCode": "RU" }
Параметр | Описание | Тип | Значения |
---|---|---|---|
IATA | IATA код аэропорта | string | Строка из 3-х заглавных латинских букв |
name | Название аэропорта | string | Строка |
nameEn | Английское название аэропорта | string | Строка |
properName | Оригинальное название аэропорта (без города), может быть пустым | string | Строка |
properNameEn | Оригинальное название аэропорта на английском (без города), может быть пустым | string | Строка |
cityId | Код города | number | Число |
isAggregation | Является ли город агрегатом аэропортов | boolean | Логический тип |
countryCode | Код страны | string | Строка из 2 латинских букв(ISO 3166-1 alpha-2) |
Авиакомпании (airlines)
Данные по IATA коду авиакомпании
guide.airlines.CODE =
{ "IATA": "SU", "name": "Аэрофлот - Российские авиалинии", "nameEn": "Aeroflot", "rating": 6.43, "countryCode": "RU", "logo": { "image": "/static/images/guide_carrier/logotype_5_0.svg", "icon": "/static/images/guide_carrier_icon/logotype_5_0.svg", "height": null, "width": null }, "monochromeLogo": { "image": "/static/images/guide_carrier/monochrome_logotype_5_0.svg", "icon": "/static/images/guide_carrier_monochrome_icon/monochrome_logotype_5_0.svg", "height": null, "width": null }, "colors": { "companyColor": "#000080", "companyColorAdditional": "#000080" } }
Параметр | Описание | Тип | Значения |
---|---|---|---|
IATA | IATA код авиакомпании | string | Строка из 2 знаков (букв латинского алфавита и цифр) |
name | Название авиакомпании | string | Строка |
nameEn | Английское название авиакомпании | string | Строка |
rating | Рейтинг перевозчика | number | Число |
countryCode | Код страны авиакомпании | string | Строка из 2 латинских букв (ISO 3166-1 alpha-2) |
logo | Данные о логотипе авиакомпании | {} | ... |
monochromeLogo | Данные о монохромном логотипе авиакомпании | {} | ... |
|
Ссылка на логотип авиакомпании | string | Строка, указывающая относительный путь к изображению |
|
Ссылка на иконку логотипа авиакомпании | string | Строка, указывающая относительный путь к изображению |
|
Высота логотипа | number | Целое положительное число |
|
Ширина логотипа | number | Целое положительное число |
colors | Данные о фирменных цветах авиакомпании | {} | ... |
|
Фирменный цвет | string | HEX код, соответствующий регулярному выражению /^\#[\da-f]{6}$/ |
|
Дополнительный фирменный цвет | string | HEX код, соответствующий регулярному выражению /^\#[\da-f]{6}$/ |
Отели (hotels)
Данные по коду отеля
guide.hotels.ID =
{ "name": "Bridgestreet Opera Saint Lazar", "nameEn": "BRIDGESTREET OPERA SAINT LAZAR", "cityId": 15777, "id": 7 }
Параметр | Описание | Тип | Значения |
---|---|---|---|
name | Название отеля | string | Строка |
nameEn | Английское название отеля | string | Строка |
cityId | Идентификатор города, в котором расположен отель | number | Число |
id | Код отеля | number | Число |
Автокомплит (autocomplete)
IATA совместимые локации
guide.autocomplete.iata =
[ { "IATA": "MOW", "isCity": true, "cityId": 58165 } ]
Параметр | Описание | Тип | Значения |
---|---|---|---|
IATA | IATA код | string | Строка из 3 букв латинского алфавита |
isCity | Признак, что указан код города-агрегата аэропортов | boolean | Логический тип |
cityId | Идентификатор города | number | Число |
Города
guide.autocomplete.cities =
[ { "id": "58165", "name": "Москва", "country_code": "RU", "country_name": "Россия" } ]
Параметр | Описание | Тип | Значения |
---|---|---|---|
id | Идентификатор города | int | Целое число |
name | Название города | string | Строка |
country_code | Код страны | string | Строка из 2 латинских букв |
country_name | Название страны | string | Строка |
Служебная информация(system)
Служебная информация (info)
system.info =
{ "responce": { "timestamp": 1433754718.9557, "responceTime": 0.10900616645813 }, "user": { "userID": 3037, "agencyID": 3036, "status": "manager", "settings": { "currentLanguage": "ru", "currentCurrency": "USD", "agencyCurrency": "USD" "googleMapsApiKey": "null" "googleMapsClientId": "null" }, "promoCode": { "code": "22SV2ZS9S", "promoAction": { "name": "Название акции", "description": "Описание акции", "hasFullDesc": true, "fullDescURL": "index.php?go=loyalty/description&id=106" } } } }
Параметр | Описание | Тип | Значения |
---|---|---|---|
responce | Ограничения на максимальные значения параметров | {} | ... |
|
Текущая временная метка с сервера | number | Вещественное число |
|
Время ответа | number | Вещественное число |
user | Служебная информация о пользователе | {} | ... |
|
ID пользователя | number | Целое положительное число |
|
ID агентства | number | Целое положительное число |
|
Статус пользователя | string | Строка, принимающая следующие значения:
|
|
Настройки пользователя | {} | ... |
|
Текущий язык | string | Строка из 2 латинских букв |
|
Текущая валюта | string | Строка из 3 латинских букв |
|
Валюта агентства | string | Строка из 3 латинских букв |
|
Api ключ для доступа к google maps | string | Строка |
|
CliendId для доступа к google maps | string | Строка |
|
Информация о промокоде | {} | ... |
|
код | string | Строка |
|
информация о промоакции | {} | ... |
|
Название акции | string | Строка |
|
Описание акции | string | Строка |
|
Флаг наличия подробного описания | boolean | логический тип |
|
Ссылка для получения подробного описания | string | Строка |
Заказы (order)
Аутентификация (auth)
Данные запроса аутентификации(request)
order.auth.request =
{ "login": "test", "password": "test" }
Параметр | Описание | Тип | Значения |
---|---|---|---|
login | Логин пользователя | string | строка |
password | Пароль пользователя | string | строка |
Данные результата аутентификации(response)
order.auth.response =
{ "success": true }
Параметр | Описание | Тип | Значения |
---|---|---|---|
success | Результат аутентификации | Boolean | Логический тип |
Данные запроса восстановления пароля(sendPasswordLink)
order.auth.sendPasswordLink =
{ "login": "test" }
Параметр | Описание | Тип | Значения |
---|---|---|---|
login | Логин пользователя | string | строка |
Результат запроса восстановления пароля(sendPasswordLinkResponse)
order.auth.sendPasswordLinkResponse =
{ "success": true, "message": "Письмо со ссылкой на восстановление пароля отправлено вам на почту" }
Параметр | Описание | Тип | Значения |
---|---|---|---|
success | Результат аутентификации | Boolean | Логический тип |
message | Сообщение | string | строка |
Данные запроса регистрации пользователя(registration)
order.auth.registration =
{ "booking_name": "tst", "booking_lastname": "tst", "registration_email": "tst@mute-lab.com", "registration_password": "tst", "booking_phone": "89271111111", "subscribe": true, "capture": "tst" }
Параметр | Описание | Тип | Значения |
---|---|---|---|
booking_name | Имя пользователя | string | строка |
booking_lastname | Фамилия пользователя | string | строка |
registration_email | Адрес электронной почты пользователя | string | строка |
registration_password | Пароль | string | строка |
booking_phone | Телефон пользователя | string | строка |
subscribe | Признак согласия на получение информации о лучших предложениях | Boolean | Логический тип |
capture | Код проверки с контрольного изображения | string | строка |
Результат запроса регистрации пользователя(registrationResponse)
order.auth.registrationResponse =
{ "success": true, "message": "Письмо с регистрационными данными отправлено на Ваш электронный адрес. Для подтверждения регистрации перейдите, пожалуйста, по ссылке в письме.", "redirectUrl": null }
Параметр | Описание | Тип | Значения |
---|---|---|---|
success | Результат регистрации | Boolean | Логический тип |
message | Сообщение | string | строка |
redirectUrl | Ссылка для перехода | string | строка |
Данные результата запроса о параметрах капчи(captchaParamsResponse)
order.auth.captchaParamsResponse =
{ "image": "data:image/jpeg;base64,JBJ435346...." }
Параметр | Описание | Тип | Значения |
---|---|---|---|
image | Ссылка на изображение | string | строка |
Данные запроса о состоянии заказа(status)
order.auth.status =
{ "booking_id": 445469, "passenger_lastname": "Ivanov", "access_code": "8Z273L" }
Параметр | Описание | Тип | Значения |
---|---|---|---|
booking_id | Идентификатор заказа | string | строка, может содержать цифры от 0 до 9 и дефис |
passenger_lastname | Фамилия одного из пассажиров | string | строка |
access_code | Код доступа к заказу | string | строка |
Данные результата запроса о состоянии заказа(statusResponse)
order.auth.statusResponse =
{ "success": true, "message": null, "redirectUrl": "http://nemotravel/poffice__bookinfo?booking_id=452434" }
Параметр | Описание | Тип | Значения |
---|---|---|---|
success | Признак успешности получения ответа | Boolean | Логический тип |
message | Сообщение | string | строка |
redirectUrl | Ссылка для перехода | string | строка |
Протокорзина (reminder)
Информация о заказах пользователя (orders)
order.reminder.orders =
[ { "id": 296944, "type": "oneFlight", "products": [ { "status": "completed", "type": "flight", "depAirpIATA": "VKO", "arrAirpIATA": "LED", "beginDateTime": "2015-09-29T10:00:00", "endDateTime": "2015-09-29T11:30:00", "totalPrice": { "amount": 485, "currency": "RUB" }, "description": "..." } ], "orderPrice": { "amount": 485, "currency": "RUB" } } ]
Параметр | Описание | Тип | Значения |
---|---|---|---|
id | Идентификатор заказа | number | Целое положительное число |
type | тип заказа | String | Строка |
products | Массив продуктов | [] | ... |
|
Статус | String | Строка, принимающая одно из следующих значений:
|
|
Тип продукта | String | Строка, принимающая одно из следующих значений:
|
|
Для перелёта - код аэропорта вылета | String | Строка из 2 знаков (букв латинского алфавита и цифр) |
|
Для перелёта - код аэропорта прилета | String | Строка из 2 знаков (букв латинского алфавита и цифр) |
|
Дата начала услуги | String | Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601) |
|
Дата завершения услуги | String | Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601) |
|
Цена услуги | {} | ... |
|
Сумма | number | Дробное число |
|
Код валюты | string | Строка в формате ISO 4217(трёхбуквенный алфавитный код) |
|
Описание продукта | string | Строка |
orderPrice | Цена заказа | {} | Формат аналогичен totalPrice |
Информация о системе (system)
Служебная информация (info)
Получение данных о валютах (currencyRates)
system.info.currencyRates =
{ "rates": [ { "currency": "EUR", "rate": 0.015983249554467, "title": "Евро" }, { "currency": "USD", "rate": 0.017322646415338, "title": "Американский Доллар" }, { "currency": "RUB", "rate": 1, "title": "Российский Рубль" }, { "currency": "GBP", "rate": 0.011694224105772, "title": "Британский фунт" }, { "currency": "CZK", "rate": 0.44018540609305, "title": "Чешская крона" }, { "currency": "LVL", "rate": 0.0169, "title": "Латвийский Лат" }, { "currency": "JPY", "rate": 2.0694507677662, "title": "Японская Йена" }, { "currency": "CNY", "rate": 0.10767415217373, "title": "Китайский Юань" }, { "currency": "UAH", "rate": 0.40708159136336, "title": "Гривна" } ], "conversionEnabled": true, "roundingFunction": "ceil", "backendCurrencyList": [ "RUB" ] }
Параметр | Описание | Тип | Значения |
---|---|---|---|
rates | Массив данных о валютах | [] | ... |
|
Код валюты | String | Строка в формате ISO 4217(трёхбуквенный алфавитный код) |
|
Код валюты | Numeric | Число от 0 до 1 |
|
Название валюты | String | Строка |
conversionEnabled | Флаг допустимости пересчета цен в результатах поиска | boolean | Логический тип |
roundingFunction | Тип округления | String | Строка, принимающая следующие значения:
|
backendCurrencyList | список валют, допустимых для бэкендных расчетов | [] | Массив кодов валют |
Трэвел-политики (travelPolicies)
Получение данных о трэвел-политиках (travelPolicies)
travelPolicies =
[ { "id": 184, "name": { "en": "First rule", "default": "Правило первое" }, "rules": { "isDirect": true, "arrAirports": [ "LED", "KBP" ], "depAirports": [ "MOW", "KBP" ], "arrCountries": [ "RU", "UA" ], "depCountries": [ "RU", "UA" ], "airlines": [ "SU", "PS" ], "serviceClass": [ "E", "B", "F" ], "zones": [ "EU", "AS" ], "tariffs": [ "QWE" ], "bookingClass": [ "T", "Q" ] }, "restrictions": { "priceMax": { "amount": "100000", "currency": "RUB" }, "priceDiffMax": { "amount": "20", "currency": "PCT" } } }, { "id": 185, "name": { "default": "Правило второе" }, "rules": { "isDirect": false, "arrAirports": [ "LED" ], "depAirports": [ "MOW" ], "arrCountries": [], "depCountries": [], "airlines": [], "serviceClass": [], "zones": [ "EU" ], "tariffs": [], "bookingClass": [] }, "restrictions": { "priceMax": { "amount": "90000", "currency": "RUB" }, "priceDiffMax": { "amount": "", "currency": "PCT" } } } ]
Параметр | Описание | Тип | Значения |
---|---|---|---|
id | Идентификатор правила | String | Строка |
name | Данные о названиях правила на разных языках | {} | Объект или null. Ключами являются коды языков либо default - название по умолчанию |
rules | Правила политики | {} | ... |
|
Флаг обязательного прямого перелета | boolean | Логический тип |
|
Массив IATA кодов аэропортов прибытия | [] | ... |
|
Массив IATA кодов аэропортов вылета | [] | ... |
|
Массив кодов стран прибытия | [] | ... |
|
Массив кодов стран вылета | [] | ... |
|
Массив IATA кодов авиакомпаний | [] | ... |
|
Массив однобуквенных кодов сервисных классов | [] | ... |
|
Массив кодов географических зон перелета | [] | ... |
|
Массив кодов тарифов | [] | ... |
|
Массив однобуквенных кодов допустимых классов бронирования | [] | ... |
restrictions | Ограничения по цене | {} | ... |
|
Верхняя планка цены | {} | ... |
|
Максимальная разбежка с минимальной ценой | {} | ... |
|
Сумма | number | Дробное число |
|
Код валюты | string | Строка в формате ISO 4217(трёхбуквенный алфавитный код) |