Открыть главное меню

Изменения

Frontend API

8352 байта добавлено, 14:14, 27 февраля 2019
Нет описания правки
Формат запросов имеет вид
<pre>http(s)://host/api/{component}/{module}/{action} + /{parameter1}/{parameter2}... (где параметры необязательны)</pre>
Пример:
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
= Описание запросов =
*Response:
** [[#flights.utils.sunInfo|flights.utils.sunInfo]] (Информация о солнечной стороне)
** [[#utils.system.info|system.info]] (Служебная информация)
== Модуль Отели (hotels) ==
* Request
** URI /api/hotels/search/request/{searchId?} (получение данных запроса поиска с идентификатором {searchId}или создание нового запроса на поиск)
** POST request="[[#hotels.search.request|hotels.search.request]]" (Параметры запроса поиска)
* Response:
== Модуль Заказов (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) ===
"aroundDates": 0,
"serviceClass": "All",
"airlines": [ { "IATA": "UT" } ],
"delayed": false
"priceRefundType": null
}
}
|Предпочитаемые авиакомпании
|[]
|...|-|:: Массив IATA|IATA код кодов авиакомпании|string|Строка из 2 знаков (букв латинского алфавита и цифр)
|-
|
|boolean
|Логический тип
|-
|
: priceRefundType
|Признак возвратности тарифа, где
: AnyLowest - наименьшие цены (по умолчанию)
: Refundable - наименьшие цены с возможностью безвозмездного возврата
: Both - совокупность поисковых выдач поиска для минимальных и минимальных возвратных цен
|string
|Строка, принимающая одно из значений:
: AnyLowest
: Refundable
: Both
: Null
|-
|}
</div>
=== Вспомогательные функции (utils) === <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">==== Получение данных по солнечной стороне (sunInfo) ====<pre id="flights.utils.sunInfo">flights.utils.sunInfo = </pre><div class="mw-collapsible-content"><pre>{ "info": { "sunPercentLeft": 0, "sunPercentRight": 0 }, "message": "Солнце не будет мешать во время полета"}</pre>{| border="1" cellpadding="10" cellspacing="0"!Параметр!Описание!Тип!Значения|-|sunPercentLeft|Процент времени от общей длительности перелета нахождения солнца с левой стороны борта самолета|number|Целое положительно число не большее 100|-|sunPercentRight|Процент времени от общей длительности перелета нахождения солнца с правой стороны борта самолета|number|Целое положительно число не большее 100|-|message|Сообщение с информацией о проценте времени нахождения солнца с определенной стороны|string|Строка|}</div></div> == Отели (hotels) == === Поиск (search) ===
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
== Заказы (order) ==
=== Протокорзина Аутентификация (reminderauth) ===
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
==== Информация о заказах пользователя Данные запроса аутентификации(ordersrequest) ====<pre id="order.reminderauth.ordersrequest">order.reminderauth.orders request = </pre>
<div class="mw-collapsible-content">
<pre>
[ { "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, "currencylogin": "RUBtest" }, "descriptionpassword": "...test" } ], "orderPrice": { "amount": 485, "currency": "RUB" } }]
</pre>
{| border="1" cellpadding="10" cellspacing="0"
!Значения
|-
|idlogin|Идентификатор заказаЛогин пользователя|numberstring|Целое положительное числострока
|-
|typepassword|тип заказаПароль пользователя|Stringstring|Строка строка
|-
|products}|Массив продуктов</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": statustrue|Статус}</pre>{|Stringborder="1" cellpadding="10" cellspacing="0"|Строка, принимающая одно из следующих значений:!Параметр: pending - ожидает бронирования,!Описание: booked - забронирован, ожидает оплаты,!Тип: completed - оплаченный!Значения
|-
|: typesuccess|Тип продуктаРезультат аутентификации|StringBoolean|Строка, принимающая одно из следующих значений:: flight - перелет,: hotel - отель,: train - поездка на поездеЛогический тип
|-
|}</div></div> <div class="toccolours mw-collapsible mw-collapsed" style="width: depAirpIATA800px; margin-bottom:10px;">|Для перелёта ==== Данные запроса восстановления пароля(sendPasswordLink) ====<pre id="order.auth.sendPasswordLink">order.auth.sendPasswordLink = </pre><div class="mw-collapsible- код аэропорта вылетаcontent"> <pre>{ "login": "test"}</pre>{|Stringborder="1" cellpadding="10" cellspacing="0"|Строка из 2 знаков (букв латинского алфавита и цифр)!Параметр!Описание!Тип!Значения
|-
|: arrAirpIATA|Для перелёта - код аэропорта прилета|String|Строка из 2 знаков (букв латинского алфавита и цифр)|-|: beginDateTime|Дата начала услуги|String|Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601)|-|: endDateTime|Дата завершения услуги|String|Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601)|-|: totalPrice|Цена услуги|{}|...|-|:: amount|Сумма |number|Дробное число|-|:: currencylogin|Код валютыЛогин пользователя|string|Строка в формате ISO 4217(трёхбуквенный алфавитный код)|-|: description|Описание продукта|string|Строка|-|orderPrice|Цена заказа|{}|Формат аналогичен totalPriceстрока
|-
|}
</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= Информация о системе (system) ="10" cellspacing="0"!Параметр!Описание!Тип!Значения|-|success|Результат аутентификации|Boolean|Логический тип|-|message|Сообщение|string|строка|-|}</div>=== Служебная информация (info) ===</div>
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
==== Получение данных о валютах Данные запроса регистрации пользователя(currencyRatesregistration) ====<pre id="systemorder.infoauth.currencyRatesregistration">systemorder.infoauth.currencyRates registration = </pre>
<div class="mw-collapsible-content">
<pre>
{
"ratesbooking_name": ["tst", { "currencybooking_lastname": "EURtst", "rateregistration_email": 0"tst@mute-lab.015983249554467com", "titleregistration_password": "Евроtst" }, { "currencybooking_phone": "USD89271111111", "ratesubscribe": 0.017322646415338true, "titlecapture": "Американский Долларtst" }, </pre>{ | border="currency1": cellpadding="RUB10", cellspacing="rate0": 1, "title": "Российский Рубль"!Параметр!Описание!Тип!Значения|-|booking_name|Имя пользователя|string|строка|-|booking_lastname|Фамилия пользователя|string|строка|-|registration_email|Адрес электронной почты пользователя|string|строка|-|registration_password|Пароль|string|строка|-|booking_phone|Телефон пользователя|string|строка|-|subscribe|Признак согласия на получение информации о лучших предложениях|Boolean|Логический тип|-|capture|Код проверки с контрольного изображения|string|строка|- |}, {</div></div>  <div class="currencytoccolours mw-collapsible mw-collapsed"style="width: 800px; margin-bottom:10px;"GBP",>==== Результат запроса регистрации пользователя(registrationResponse) ==== <pre id="rateorder.auth.registrationResponse": 0>order.auth.011694224105772,registrationResponse = </pre> <div class="title": "Британский фунтmw-collapsible-content">  },<pre> { "currencysuccess": "CZK"true, "ratemessage": 0"Письмо с регистрационными данными отправлено на Ваш электронный адрес. Для подтверждения регистрации перейдите, пожалуйста, по ссылке в письме.44018540609305", "titleredirectUrl": "Чешская крона"null }, </pre>{ | border="currency1": cellpadding="LVL10", cellspacing="rate0": 0.0169, "title": "Латвийский Лат"!Параметр!Описание!Тип!Значения|-|success|Результат регистрации|Boolean|Логический тип|- },|message {|Сообщение "currency": "JPY",|string "rate": 2.0694507677662,|строка "title": "Японская Йена"|- },|redirectUrl {|Ссылка для перехода "currency": "CNY",|string "rate": 0.10767415217373,|строка "title": "Китайский Юань"|- |}, {</div></div>  <div class="currencytoccolours mw-collapsible mw-collapsed"style="width:800px; margin-bottom: 10px;"UAH",>==== Данные результата запроса о параметрах капчи(captchaParamsResponse) ==== <pre id="rateorder.auth.captchaParamsResponse": 0>order.auth.40708159136336,captchaParamsResponse = </pre> <div class="title": "Гривнаmw-collapsible-content">  }<pre> ],{ "conversionEnabledimage": true, "roundingFunction"data: "ceil"image/jpeg;base64, JBJ435346...."backendCurrencyList": [ "RUB" ]
}
</pre>
!Значения
|-
|ratesimage|Массив данных о валютахСсылка на изображение|[]string|...строка
|-
|}</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>{ "booking_id": 445469, "passenger_lastname": currency"Ivanov", "access_code": "8Z273L"}</pre>{|Код валютыborder="1" cellpadding="10" cellspacing="0"|String!Параметр!Описание!Тип|Строка в формате ISO 4217(трёхбуквенный алфавитный код)!Значения
|-
|: ratebooking_id|Код валютыИдентификатор заказа|Numericstring|Число строка, может содержать цифры от 0 до 19 и дефис
|-
|: titlepassenger_lastname|Название валютыФамилия одного из пассажиров|Stringstring|Строкастрока
|-
|conversionEnabledaccess_code|Флаг допустимости пересчета цен в результатах поискаКод доступа к заказу|booleanstring|Логический тип |-|roundingFunction|Тип округления|String|Строка, принимающая следующие значения:: 'ceil' - всегда вверх;: 'floor' - всегда вниз;: 'round' - математическое|-|backendCurrencyList|список валют, допустимых для бэкендных расчетов|[]|Массив кодов валютстрока
|-
|}
</div>
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
==== Данные результата запроса о состоянии заказа(statusResponse) ====
<pre id="order.auth.statusResponse">order.auth.statusResponse = </pre>
<div class="mw-collapsible-content">
<pre>
{
"success": true,
"message": null,
"redirectUrl": "http://nemotravel/poffice__bookinfo?booking_id=452434"
}
</pre>
{| border="1" cellpadding="10" cellspacing="0"
!Параметр
!Описание
!Тип
!Значения
|-
|success
|Признак успешности получения ответа
|Boolean
|Логический тип
|-
|message
|Сообщение
|string
|строка
|-
|redirectUrl
|Ссылка для перехода
|string
|строка
|-
|}
</div>
</div>
== Трэвел-политики = Протокорзина (travelPoliciesreminder) ===
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
==== Получение данных Информация о трэвел-политиках заказах пользователя (travelPoliciesorders) ====<pre id="travelPoliciesorder.reminder.orders">travelPolicies order.reminder.orders = </pre>
<div class="mw-collapsible-content">
<pre>
[
{ "id": 184296944, "name": { "entype": "First ruleoneFlight", "defaultproducts": "Правило первое" },[ "rules": { "isDirect": true, "arrAirportsstatus": [ "LEDcompleted", "KBP" ], "depAirportstype": [ "MOWflight", "KBP" ], "arrCountriesdepAirpIATA": [ "RUVKO", "UA" ], "depCountriesarrAirpIATA": [ "RULED", "UAbeginDateTime" ], "airlines: "2015-09-29T10: [ "SU", "PS" ], "serviceClass"00: [ "E00", "B", "F" ], "zonesendDateTime": [ "EU", "AS" ], "tariffs"2015-09-29T11: [ "QWE" ], "bookingClass"30: [ "T00", "Q" ] }, "restrictionstotalPrice": { "priceMax": { "amount": "100000"485, "currency": "RUB" }, "priceDiffMax": { "amount": "20", "currency": "PCT" } } }, { "iddescription": 185, "name...": { "default": "Правило второе" }, "rules": { "isDirect": false, "arrAirports": [ "LED" ], "depAirports": [ "MOW" ], "arrCountries": [], "depCountries": [], "airlines": [], "serviceClass": [], "zones": [ "EU" ], "tariffs": [], "bookingClass": [] }, "restrictionsorderPrice": { "priceMax": { "amount": "90000"485, "currency": "RUB" }, "priceDiffMax": { "amount": "", "currency": "PCT" } } } ]</pre>{| border="1" cellpadding="10" cellspacing="0"!Параметр!Описание!Тип!Значения|-|id|Идентификатор правилазаказа|number|Целое положительное число|-|type|тип заказа|String|Строка |-|products|Массив продуктов|[]|...|-|: status|Статус|String|Строка, принимающая одно из следующих значений:: pending - ожидает бронирования,: booked - забронирован, ожидает оплаты,: completed - оплаченный|-|: type|Тип продукта
|String
|Строка, принимающая одно из следующих значений:: flight - перелет,: hotel - отель,: train - поездка на поезде
|-
|name|Данные о названиях правила на разных языках|{}|Объект или null. Ключами являются коды языков либо default - название по умолчанию: depAirpIATA|Для перелёта -код аэропорта вылета|rules|Правила политики|{}String|...Строка из 2 знаков (букв латинского алфавита и цифр)
|-
|
: isDirectarrAirpIATA|Флаг обязательного прямого перелетаДля перелёта - код аэропорта прилета|booleanString|Логический тип Строка из 2 знаков (букв латинского алфавита и цифр)
|-
|
: arrAirportsbeginDateTime|Массив IATA кодов аэропортов прибытияДата начала услуги|[]String|...Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601)
|-
|
: depAirportsendDateTime|Массив IATA кодов аэропортов вылетаДата завершения услуги|[]String|...Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601)
|-
|
: arrCountriestotalPrice|Массив кодов стран прибытияЦена услуги|[]{}
|...
|-
|
: depCountries: amount|Массив кодов стран вылетаСумма |[]number|...Дробное число
|-
|
: airlines: currency|Массив IATA кодов авиакомпанийКод валюты|[]string|...Строка в формате ISO 4217(трёхбуквенный алфавитный код)
|-
|
: serviceClassdescription|Массив однобуквенных кодов сервисных классовОписание продукта|[]string|... Строка
|-
|: zonesorderPrice|Массив кодов географических зон перелетаЦена заказа|[]{}|... Формат аналогичен totalPrice
|-
|: tariffs|Массив кодов тарифов|[]|... |-|: bookingClass|Массив однобуквенных кодов допустимых классов бронирования|[]|... |-|restrictions|Ограничения по цене|{}|...|-|: priceMax|Верхняя планка цены|{}|... |-|: priceDiffMax| Максимальная разбежка с минимальной ценой|{}|... |-|:: amount|Сумма |number|Дробное число|-|:: currency|Код валюты|string|Строка в формате ISO 4217(трёхбуквенный алфавитный код)|-|}</div></div> == Информация о системе (system) == == Вспомогательные функции = Служебная информация (utilsinfo) ===
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
==== Получение данных по солнечной стороне о валютах (sunInfocurrencyRates) ====<pre id="flightssystem.utilsinfo.sunInfocurrencyRates">flightssystem.utilsinfo.sunInfo currencyRates = </pre>
<div class="mw-collapsible-content">
 
<pre>
{ "inforates": [ { "currency": "EUR", "rate": 0.015983249554467, "title": "Евро" }, { "currency": "USD", "sunPercentLeftrate": 0.017322646415338, "title": "Американский Доллар" }, { "sunPercentRightcurrency": "RUB", "rate": 1, "title": "Российский Рубль" }, { "currency": "GBP", "rate": 0.011694224105772, "title": "Британский фунт" }, { "currency": "CZK", "rate": 0.44018540609305, "title": "Чешская крона"
},
{ "messagecurrency": "Солнце не будет мешать во время полетаLVL",}</pre>{| border= "1rate" cellpadding=: 0.0169, "10title" cellspacing=: "0Латвийский Лат"!Параметр!Описание!Тип!Значения|-|sunPercentLeft|Процент времени от общей длительности перелета нахождения солнца с левой стороны борта самолета|number|Целое положительно число не большее 100|-|sunPercentRight|Процент времени от общей длительности перелета нахождения солнца с правой стороны борта самолета|number|Целое положительно число не большее 100|-|message|Сообщение с информацией о проценте времени нахождения солнца с определенной стороны|string|Строка| },</div> {</div> == Служебная информация(system) == <div class= "toccolours mw-collapsible mw-collapsedcurrency" style=: "width:800px; margin-bottom:10px;JPY">,=== Служебная информация (info) ===<pre id= "utils.system.inforate">system: 2.info = </pre>0694507677662,<div class= "title": "mw-collapsible-contentЯпонская Йена"> },<pre> { "responcecurrency": { "timestampCNY": 1433754718.9557, "responceTimerate": 0.10900616645813 }10767415217373, "usertitle": { "userIDКитайский Юань": 3599 }, "agencyID": 3598, { "statuscurrency": "managerUAH", "isB2Brate": true0.40708159136336, "settingstitle": { "currentLanguage": "ruГривна" } ], "currentCurrencyconversionEnabled": "USD"true, "agencyCurrencyroundingFunction": "USDceil", "googleMapsApiKeybackendCurrencyList": "null"[ "googleMapsClientIdRUB": "null" } } ] }
</pre>
{| border="1" cellpadding="10" cellspacing="0"
!Значения
|-
|responcerates|Ограничения на максимальные значения параметровМассив данных о валютах|{}[]
|...
|-
|
:timestampcurrency|Текущая временная метка с сервераКод валюты|numberString|Вещественное числоСтрока в формате ISO 4217(трёхбуквенный алфавитный код)
|-
|
:responceTimerate|Время ответаКод валюты|numberNumeric|Вещественное число|-|user|Служебная информация о пользователе|{}|...Число от 0 до 1
|-
|
:userIDtitle|ID пользователяНазвание валюты|numberString|Целое положительное числоСтрока
|-
|:agencyIDconversionEnabled|ID агентстваФлаг допустимости пересчета цен в результатах поиска|numberboolean|Целое положительное числоЛогический тип
|-
|:statusroundingFunction|Статус пользователяТип округления|stringString
|Строка, принимающая следующие значения:
: guest'ceil' - всегда вверх;: admin'floor' - всегда вниз;: user: expert: manager: company_user: company_expert: company_manager'round' - математическое
|-
|:isB2BbackendCurrencyList| Признак типа B2Bсписок валют, допустимых для бэкендных расчетов| boolean[]| логический типМассив кодов валют
|-
|}</div></div>   == Трэвел-политики (travelPolicies) == <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">==== Получение данных о трэвел-политиках (travelPolicies) ====<pre id="travelPolicies">travelPolicies = </pre><div class="mw-collapsible-content"> <pre>[ { "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":settings{| Настройки пользователя "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":currentLanguage"PCT" } } } ]</pre>{| Текущий языкborder="1" cellpadding="10" cellspacing="0"|string!Параметр!Описание!Тип|Строка из 2 латинских букв!Значения|-|::currentCurrencyid| Текущая валютаИдентификатор правила|stringString|Строка из 3 латинских букв|-|::agencyCurrencyname| Валюта агентстваДанные о названиях правила на разных языках|string{}|Строка из 3 латинских буквОбъект или null. Ключами являются коды языков либо default - название по умолчанию|-|::googleMapsApiKeyrules| Api ключ для доступа к google mapsПравила политики|string{}|Строка...
|-
|
: isDirect|Флаг обязательного прямого перелета|boolean|Логический тип |-|: arrAirports|Массив IATA кодов аэропортов прибытия|[]|...|-|: depAirports|Массив IATA кодов аэропортов вылета|[]|...|-|: arrCountries|Массив кодов стран прибытия|[]|...|-|: depCountries|Массив кодов стран вылета|[]|...|-|: airlines|Массив IATA кодов авиакомпаний|[]|...|-|: serviceClass|Массив однобуквенных кодов сервисных классов|[]|... |-|: zones|Массив кодов географических зон перелета|[]|... |-|: tariffs|Массив кодов тарифов|[]|... |-|: bookingClass|Массив однобуквенных кодов допустимых классов бронирования|[]|... |-|restrictions|Ограничения по цене|{}|...|-|: priceMax|Верхняя планка цены|{}|... |-|: priceDiffMax| Максимальная разбежка с минимальной ценой|{}|... |-|:: amount|Сумма |number|Дробное число|-|::googleMapsClientIdcurrency| CliendId для доступа к google mapsКод валюты
|string
|Строкав формате ISO 4217(трёхбуквенный алфавитный код)
|-
|}
</div>
</div>
'