Frontend API: различия между версиями
(→Служебная информация(system)) |
(→Запрос определения солнечной стороны) |
||
| Строка 145: | Строка 145: | ||
** URI /api/flights/utils/sunInfo/{dep_airport}/{depDateTimeLocal}/{arr_airport}/{arrDateTimeLocal} | ** 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 | *** Пример: /api/flights/utils/sunInfo/RTW/2016-06-28T15:00:00/DME/2016-06-28T20:30:00 | ||
| + | **Примечание: для изменения языка сообщения с русского на английский следует использовать GET параметр apilang=en | ||
| + | ***Пример: /api/flights/utils/sunInfo/RTW/2016-06-28T15:00:00/DME/2016-06-28T20:30:00?apilang=en | ||
*Response: | *Response: | ||
Версия 16:30, 31 мая 2016
Содержание
- 1 Общее описание
- 2 Описание запросов
- 2.1 Модуль Авиабилеты (flights)
- 2.1.1 Модуль Поиск (search)
- 2.1.1.1 Получение параметров поиска "по умолчанию"
- 2.1.1.2 Получение параметров поиска с идентификатором Х
- 2.1.1.3 Запрос поиска авиабилетов (request)
- 2.1.1.4 Запрос поиска расписания авиаперелетов (scheduleRequest)
- 2.1.1.5 Запрос получения результатов поиска
- 2.1.1.6 Запрос получения результатов дочернего поиска из матрицы окружных дат
- 2.1.1.7 Запрос получения истории поиска по текущему пользователю
- 2.1.1.8 Запрос получения информации о перелёте
- 2.1.2 Модуль Вспомогательных Функций (utils)
- 2.1.1 Модуль Поиск (search)
- 2.2 Модуль Отели (hotels)
- 2.3 Модуль Путеводитель (guide)
- 2.3.1 Модуль Autocomplete (autocomplete)
- 2.3.2 Получение информации о воздушном судне(aircraft)
- 2.3.3 Получение информации о авиакомпании(airline)
- 2.3.4 Получение информации об аэропорте(airport)
- 2.3.5 Получение информации о городе(city)
- 2.3.6 Получение информации о стране(country)
- 2.3.7 Получение информации об отеле(hotel)
- 2.3.8 Получение информации об отелях в выбранном городе
- 2.4 Модуль Заказов (order)
- 2.5 Модуль информации о системе (system)
- 2.1 Модуль Авиабилеты (flights)
- 3 Объединение запросов
- 4 Структуры данных
- 4.1 Авиабилеты (flights)
- 4.1.1 Поиск (search)
- 4.1.1.1 Данные формы поиска (formData)
- 4.1.1.2 Данные запроса поиска (request)
- 4.1.1.3 Данные запроса поиска перелетов по расписанию (scheduleRequest)
- 4.1.1.4 Данные результатов поиска (results)
- 4.1.1.5 Данные результатов поиска расписания перелетов (scheduleResults)
- 4.1.1.6 Настройки выдачи результатов (resultData)
- 4.1.1.7 Матрица окружных дат (resultMatrix)
- 4.1.1.8 Выдача истории поиска по текущему пользователю (history)
- 4.1.1.9 Получение информации о перелёте(flightInfo)
- 4.1.2 Вспомогательные функции (utils)
- 4.1.1 Поиск (search)
- 4.2 Отели (hotels)
- 4.3 Путеводитель (guide)
- 4.4 Служебная информация(system)
- 4.5 Заказы (order)
- 4.6 Информация о системе (system)
- 4.7 Трэвел-политики (travelPolicies)
- 4.1 Авиабилеты (flights)
Общее описание
JSON сервис, доступный по адресу HOST/api/...
Предоставляет унифицированный формат для разработки фронтэнд приложения на основе системы nemo.travel
Данные доступны как кроссдоменные запросы XMLHTTPRequest
Формат запросов имеет вид http(s)://host/api/{component}/{module}/{action} + /{parameter1}/{parameter2}... (где параметры необязательны)
Пример: http://demo.nemo.travel/api/flights/search/formData
Описание запросов
Модуль Авиабилеты (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
- Примечание: для изменения языка сообщения с русского на английский следует использовать GET параметр apilang=en
- Пример: /api/flights/utils/sunInfo/RTW/2016-06-28T15:00:00/DME/2016-06-28T20:30:00?apilang=en
- 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)
Модуль Протокорзина (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": [
{
"IATA": "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 код авиакомпании | string | Строка из 2 знаков (букв латинского алфавита и цифр) |
|
Признак отложенного поиска. Если 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)
Протокорзина (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(трёхбуквенный алфавитный код) |