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
Содержание
Общее описание
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(трёхбуквенный алфавитный код) |