Мастер-Тур(15):API для разработки поиска авиабилетов

Материал из Megatec
Перейти к: навигация, поиск

Версия статьи от 28-08-2018.

Поддерживаемые версии ПК «Мастер-Тур»:
Начиная с релиза 15.3


Введение

Данный web-сервис предназначен для разработки собственного поиска авиабилетов на основе API.

Установка

Для работы с web-сервисом необходимо установить службу поиска.
После установки web-сервис будет доступен по адресу http://значение настройки "serviceAddress" в TourSearchOwin/"название метода" (пример: http://localhost:9000/TourSearchOwin/Settings)

Список методов

Авторизация (Token)

Метод производит получение авторизационного токена (описание стандарта).

  • Формат запроса:
    • POST .../TourSearchOwin/Token?
  • Принимаемые параметры POST запроса ( * – обязательный):
    • grant_type * – password
    • username * – логин представителя партнера
    • password * – пароль представителя партнера
  • Возвращаемый результат:
    • access_token – токен
    • token_type – тип токена
    • expires_in – код
    • userKey – ключ пользователя
    • .issued – дата получения
    • .expires – дата действия до
Пример

Вызов метода Token

POST http://localhost:9000/TourSearchOwin/Token HTTP/1.1
Content-Type: application/x-www-form-urlencoded

grant_type=password&username=test&password=1

Возвращаемый результат метода TransportPlan (в формате JSON)

{
	"access_token": "AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAdsCC8X7m9E-2bg0-uS0VfgAAAAAAAAADZgAAwAAAA-
EqAAAAAASAAACgAAAAEAAAAO4S-VrqBhQuhqliqrAKKfIgAQAAn-gfgP-rYjk-Krr1Ck2A-IGCw6FBhamUOzFxgTtk1hR-
GLMryFIH8VK5GmHdHubZWj4S7XcazGL1Kn5-VlbiYdW2ZVWpYlk638aV-XS2kpZ9YrKgViiM_x8RH5TPo4-
9LhE7V-SjiB_CP_qs58DRKcyohq3Tz9QaiFgH1Ko7O2XKjTBG7SHyQPDPYjaqg9kDxmzq0UcIT6Fm4YkDxmm9-
CW7u3cEFWcpiqKOc2VvZFKPPHc07uDOO4w9FXPhpXZwOqrJBxzhbr73RuhzPs_e-hgxKaIlsMaK5b0v5ReAMy1kuY0ebXA",",
	"token_type": "bearer",
	"expires_in": 1209599,
	"userKey": "333",
	".issued": "Thu, 05 Apr 2018 12:05:31 GMT",
	".expires": "Thu, 19 Apr 2018 12:05:31 GMT"
}


Выгрузка настроек службы поиска (Settings)

Метод производит выгрузку настроек службы поиска.

  • Формат запроса:
    • GET .../TourSearchOwin/Settings?
  • Принимаемые параметры:
    • нет принимаемых параметров
  • Возвращаемый результат:
    • ChildAgesSetting – регулируется настройкой максимальный возраст ребенка (массив возрастов, при которых турист будет считаться ребенком
    • DurationSetting – регулируется настройкой максимальная продолжительность тура (массив продолжительностей, доступных в фильтрах для поиска)
    • RoundServiceSetting – признак округления цены (количество знаков после запятой)
    • CacheReady – статус готовности службы поиска к работе (true/false)
    • EnableFiterTree – устаревшая настройка, будет убрана (по умолчанию всегда false)
    • EnableActualFilters – включены ли актуальные фильтры (true/false)
    • CorrectLicense – проверка лицензии (true/false)
    • CorrectLicenseMessage – сообщение, если проверка лицензии не прошла
    • IsCorrectUser – проверка наличия пользователя в таблице Userlist, под которым запущена служба поиска (true/false)
    • IsShowCitizenAuthTourist – настройка запрашивать гражданство при регистрации частного лица (true/false)
    • IsShowFewCountPlaces – настройка отображения числового значения оставшихся мест, когда достигнуто значение «Мало» (true/false)
    • IsShowBusTransferPlaces – использовать фильтр наличие мест на автобусный переезд в поиске (true/false)
    • UseBusSeatChecks – план рассадки автобусного переезда (0 – не отображать, 1 – отображать без проверки, 2 – отображать с проверкой)
    • UseTransferSeatChecks – план рассадки трансфера (0 – не отображать, 1 – отображать без проверки, 2 – отображать с проверкой)
    • IsShowFiltersByCity – отображать фильтр по городам на главной странице поиска (true/false)
    • CheckRealCourses – включена ли проверка курсов реальных валют при поиске (true/false)
    • CommonImagesFolderPath – путь к папке для хранения изображений
    • UseApplyFiltersButton – отображать кнопку «Применить фильтры» (true/false)
    • AutoSearchFiltersTimeout – задержка между выбором дополнительных фильтров и выводом результатов (в секундах)
    • UseFastSearchAlgoritm – использовать быстрый алгоритм поиска (true/false)
    • MaxSearchDatesCountClient – максимальное количество дат, которое будет обрабатываться в клиенте поиска
    • MaxDurationsCountClient – максимальное количество продолжительностей, которое будет обрабатываться в клиенте поиска
Пример

Вызов метода Settings

GET http://localhost:9000/TourSearchOwin/Settings

Возвращаемый результат метода Settings (в формате JSON)

{
   "ChildAgesSetting":    [
      1, 
      2,
      3,
      4,
      5,
      6,
      7,
      8,
      9,
      10,
      11,
      12,
      13,
      14,
      15,
      16
   ],
   "DurationSetting":    [
      1,
      2,
      3,
      4,
      5,
      6,
      7,
      8,
      9,
      10,
      11,
      12,
      13,
      14,
      15,
      16,
      17,
      18,
      19,
      20
   ],
   "RoundServiceSetting": 2,
   "CacheReady": true,
   "EnableFiterTree": false,
   "EnableActualFilters": true,
   "CorrectLicense": true,
   "CorrectLicenseMessage": "0deb1f882da1ec6301c961780507a180",
   "IsCorrectUser": true,
   "IsShowCitizenAuthTourist": true,
   "IsShowFewCountPlaces": true,
   "IsShowBusTransferPlaces": true,
   "UseBusSeatChecks": 1,
   "UseTransferSeatChecks": 2,
   "IsShowFiltersByCity": true,
   "CheckRealCourses": true,
   "CommonImagesFolderPath": "\\\\server\\Icons",
   "UseApplyFiltersButton": false,
   "AutoSearchFiltersTimeout": 1,
   "UseFastSearchAlgoritm": true,
   "MaxSearchDatesCountClient": 10,
   "MaxDurationsCountClient": 14
}


Выгрузка списка валют (Currency)

Метод возвращает список используемых валют.

  • Формат запроса:
    • GET .../TourSearchOwin/Currency
  • Принимаемые параметры:
    • нет принимаемых параметров
  • Возвращаемый результат:
    • Code – код валюты
    • Name – наименование валюты
    • IsMain – признак валюты «Главная»
    • IsNational – признак валюты «Национальная»
    • IsoCode – ISO код валюты
    • Key – идентификатор валюты
    • IsShowInSearch – признак показывать ли валюту в поиске
Пример

Вызов метода Currency

GET http://localhost:9000/TourSearchOwin/Currency

Возвращаемый результат метода Currency (в формате JSON)

[
      {
      "Code": "EU",
      "Name": "Euro",
      "IsMain": false,
      "IsNational": false,
      "IsoCode": "EUR",
      "Key": 2,
      "IsShowInSearch": true
   },
      {
      "Code": "рб",
      "Name": "Рубль",
      "IsMain": false,
      "IsNational": true,
      "IsoCode": "RUR",
      "Key": 14,
      "IsShowInSearch": true
   },
      {
      "Code": "$",
      "Name": "US Dollar",
      "IsMain": true,
      "IsNational": false,
      "IsoCode": "USD",
      "Key": 1,
      "IsShowInSearch": true
   }
]


Выгрузка квотируемых услуг системы (QuotedServices)

Метод производит выгрузку услуг с признаком «Квотируемая»

  • Формат запроса:
    • GET .../TourSearchOwin/QuotedServices
  • Принимаемые параметры:
    • нет принимаемых параметров
  • Возвращаемый результат:
    • Key – идентификатор услуги
    • Code – код услуги
    • Name – наименование услуги (русский)
    • NameLat – наименование услуги (английский)
    • IsDuration – наличие продолжительности у услуги
    • IsCity – наличие города у услуги
    • IsSubCode1 – признак наличия SubCode1 у услуги (вид проживания у отеля, тариф у авиаперелета)
    • IsSubCode2 – признак наличия SubCode2 у услуги (тип питания у отеля)
    • Quoted – признак квотируемости услуги
    • CheckGeoPoint – наличие геоточек у услуги
    • IsRoute – признак маршрутной услуги
    • IsPartnerBasedOn – признак сопоставления партнера услуги в зависимости от отеля
    • Control – идентификатор статуса услуги
Пример

Вызов метода QuotedServices

GET http://localhost:9000/TourSearchOwin/QuotedServices

Возвращаемый результат метода QuotedServices (в формате JSON)

[
      {
      "Key": 1,
      "Code": "А_П",
      "Name": "Авиаперелет",
      "NameLat": "Flight",
      "IsDuration": false,
      "IsCity": true,
      "IsSubCode1": true,
      "IsSubCode2": false,
      "Quoted": true,
      "CheckGeoPoint": true,
      "IsRoute": true,
      "IsPartnerBasedOn": false,
      "Control": 1
   },
      {
      "Key": 3,
      "Code": "HOTEL",
      "Name": "Отель/Круиз",
      "NameLat": "Hotel/Cruise",
      "IsDuration": true,
      "IsCity": true,
      "IsSubCode1": true,
      "IsSubCode2": true,
      "Quoted": true,
      "CheckGeoPoint": true,
      "IsRoute": true,
      "IsPartnerBasedOn": false,
      "Control": 1
   }
]


Выгрузка городов отправления (twoway)

Метод производит выгрузку всех доступных городов отправления.

  • Формат запроса:
    • GET .../TourSearchOwin/individuals/avia/twoway/departures?
  • Принимаемые параметры:
    • нет принимаемых параметров
  • Возвращаемый результат:
    • Key – ключ города
    • Name – название города
Пример

Вызов метода

GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/departures?

Возвращаемый результат метода (в формате JSON)

[{
	"Key": 312,
	"Name": "Астрахань"
},
{
	"Key": 1,
	"Name": "Москва"
}]


Выгрузка списка стран прибытия (twoway)

Метод производит выгрузку всех доступных направлений.

  • Формат запроса:
    • GET .../TourSearchOwin/individuals/avia/twoway/arrivals/1/countries?
  • Принимаемые параметры ( * – обязательный):
  • Возвращаемый результат:
    • Name – название страны
    • Key – ключ страны
    • DestinationType – тип результата (всегда возвращается в JSON = 1, в xml = country)
Пример

Вызов метода

GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/arrivals/1/countries?

Возвращаемый результат метода (в формате JSON)

[{
	"Name": "Австрия",
	"Key": 90,
	"DestinationType": 1
},
{
	"Name": "Индия",
	"Key": 26,
	"DestinationType": 1
},
{
	"Name": "Финляндия",
	"Key": 64,
	"DestinationType": 1
}]


Выгрузка списка городов прибытия (twoway)

Метод возвращает список всех доступных городов по определенному городу отправления и стране прибытия.

  • Формат запроса:
    • GET .../TourSearchOwin/individuals/avia/twoway/arrivals/1/90?
  • Принимаемые параметры ( * – обязательный):
    • 1 * – идентификатор города отправления (полученный из метода .../TourSearchOwin/individuals/avia/twoway/departures?)
    • 90 * – идентификатор страны прибытия (полученный из метода .../TourSearchOwin/individuals/avia/twoway/arrivals/1/countries?)
  • Возвращаемый результат:
    • Key – идентификатор города
    • Name – название города
Пример

Вызов метода

GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/arrivals/1/90?

Возвращаемый результат метода (в формате JSON)

[{
	"Key": 35,
	"Name": "Вена"
},
{
	"Key": 440,
	"Name": "Зельден"
}]


Выгрузка актуальных дат вылета (twoway)

Метод производит выгрузку доступных дат вылета для поискового запроса.

  • Формат запроса:
    • GET .../TourSearchOwin/individuals/avia/twoway/departures/dates/1/35?
  • Принимаемые параметры ( * – обязательный):
    • 1 * – идентификатор города отправления (полученный из метода .../TourSearchOwin/individuals/avia/twoway/departures?)
    • 35 * – идентификатор города прибытия (полученный из метода .../TourSearchOwin/individuals/avia/twoway/arrivals/1/90?)
  • Возвращаемый результат:
    • массив дат
Пример

Вызов метода

GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/departures/dates/1/35?

Возвращаемый результат метода (в формате JSON)

["28.08.2018",
"29.08.2018",
"30.08.2018",
"31.08.2018",
"01.09.2018",
"02.09.2018",]


Выгрузка актуальных дат возврата (twoway)

Метод производит выгрузку доступных дат возврата для поискового запроса.

  • Формат запроса:
    • GET .../TourSearchOwin/individuals/avia/twoway/departures/dates/1/35/20180830?
  • Принимаемые параметры ( * – обязательный):
    • 1 * – идентификатор города отправления (полученный из метода .../TourSearchOwin/individuals/avia/twoway/departures?)
    • 35 * – идентификатор города прибытия (полученный из метода .../TourSearchOwin/individuals/avia/twoway/arrivals/1/90?)
    • 20180830 * – дата вылета в формате YYYYMMDD (полученная из метода .../TourSearchOwin/individuals/avia/twoway/departures/dates/1/35?)
  • Возвращаемый результат:
    • массив дат
Пример

Вызов метода

GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/departures/dates/1/35/20180830?

Возвращаемый результат метода (в формате JSON)

["30.08.2018",
"31.08.2018",
"01.09.2018",
"02.09.2018",]



Поиск авиабилетов

Метод поиска авиабилетов использует множество параметров для поиска и фильтрации авиабилетов. Метод возвращает варианты перелетов в порядке возрастания цены.

  • Формат запроса:
    • GET .../TourSearchOwin/individuals/avia/1/35/20180830/20180912?
  • Принимаемые параметры ( * – обязательный):
    • 1 * – идентификатор города отправления (полученный из метода .../TourSearchOwin/individuals/avia/twoway/departures?)
    • 35 * – идентификатор города прибытия (полученный из метода .../TourSearchOwin/individuals/avia/twoway/arrivals/1/90?)
    • 20180830 * – дата вылета в формате YYYYMMDD (полученная из метода .../TourSearchOwin/individuals/avia/twoway/departures/dates/1/35?)
    • 20180912 * – дата возврата в формате YYYYMMDD (полученная из метода .../TourSearchOwin/individuals/avia/twoway/departures/dates/1/35/20180830?)
    • PageNumber * – номер возвращаемой страницы (по умолчанию возвращается 1)
    • PageSize * – количество возвращаемых результатов на одной странице (возвращается 20)
    • AdultCount * – количество взрослых
    • ChildAges – возраст детей. Если детей несколько, и параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
    • CurrencyName * – код валюты
    • AviaQuota * – информация о квотах на авиаперелет (значения параметров: "1" — фильтр "Есть", "5" — фильтр "Есть+запрос", "7" — фильтр "Все")
    • MinPrice * – минимальная цена (по умолчанию не передается)
    • MaxPrice – максимальная цена (по умолчанию не передается)
    • Airline – ключ авиакомпании (дополнительный фильтр)
    • AirportDeparture – ключ аэропорта вылета (дополнительный фильтр)
    • AirportArrival – ключ аэропорта прилета (дополнительный фильтр)
    • TimeDepartureFrom – время отправления с (по умолчанию возвращается 00:00)
    • TimeDepartureTo – время отправления по (по умолчанию возвращается 23:59)
    • TimeArrivalFrom – время прибытия с (по умолчанию возвращается 00:00)
    • TimeArrivalTo – время прибытия по (по умолчанию возвращается 23:59)
    • ArrivalFlightNoTransfer – производить поиск без пересадок в прямом направлении (true/false, по умолчанию false)
    • DepartureFlightNoTransfer – производить поиск без пересадок в обратном направлении (true/false, по умолчанию false)
    • DepartureFlightNumberTransfer – наличие пересадок в прямом направлении (1 – одна пересадка, 2 – две пересадки и более, 3 – одна пересадка совместно с двумя пересадками и более)
    • ArrivalFlightNumberTransfer – наличие пересадок в обратном направлении (1 – одна пересадка, 2 – две пересадки и более, 3 – одна пересадка совместно с двумя пересадками и более)
    • Tariff – ключ класса авиаперелета (дополнительный фильтр)
  • Возвращаемый результат:
    • CheckMessages – сообщения для логики проверки тура (не используется)
    • Message – сообщение об ошибке
      • Key – код ошибки
      • Value – сообщение об ошибке
    • Result – результаты поиска
      • Key – идентификатов программы тура
      • Name – название программы тура
      • TourUrl – ссылка на программу тура
      • BookingConditions – условия бронирования программы туров
      • DefaultManagers – список ведущих менеджеров
      • Manager – менеджер по умолчанию
      • Branches – список филиалов бронирования
      • DetermineTheBranchOnCity – признак определения филиала в зависимости от города начала поездки
      • StartDate – дата начала тура
      • Duration – продолжительность тура (в днях)
      • DurationInNight – продолжительность тура (в ночах)
      • Types – идентификатор типа туров
      • Cost – цена тура
      • Rate – код валюты тура
      • CityDepature – город отправления
        • Key – идентификатор города отправления
        • Value – название города отправления
      • CountryId – страна тура
      • Services – услуги в туре
        • DepartureCity – город отправления
          • Key – идентификатор
          • Value – название
        • DepartureCountry – страна отправления
          • Key – идентификатор
          • Value – название
        • ArrivalCity – город прибытия
          • Key – идентификатор
          • Value – название
        • ArrivalCountry – страна прибытия
          • Key – идентификатор
          • Value – название
        • DepartureAirport – аэропорт отправления
          • Key – идентификатор
          • Value – название
        • ArrivalAirport – аэропорт прибытия
          • Key – идентификатор
          • Value – название
        • Airline – авиакомпания
          • Key – идентификатор
          • Value – название
        • Aircraft – воздушное судно
          • Key – идентификатор
          • Value – название
        • Flight – рейс
          • Key – идентификатор
          • Value – название
        • DepartureTime – время вылета
        • ArrivalTime – время прилета
        • EndDateTime – дата и время прилета
        • FlightDetails – информация об авиаперелете
          • Tariff – информация о тарифе перелета
            • Key – идентификатор
            • Code – код тарифа
            • Name – название тарифа
          • Cost – разница в стоимости с самым дешевым вариантом
          • QuotaStatus – информация о квоте
            • PlacesStatus – статус по квотам (есть места / нет мест / под запрос)
            • FreePlaces – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
            • IsFewPlaces – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
          • PartnerId – ключ партнера
          • ByPax – цена за человека (true/false)
          • Partner – информация о партнере
            • Key – идентификатор
            • Value – название
        • FlightSetting – внутренняя информация о перелете из программы туров
          • ServiceId – идентификатор класса услуги (внутренняя информация из программы туров)
          • PatternId – идентификатор паттерна услуги (внутренняя информация из программы туров)
          • FlightId – идентификатор перелета (внутренняя информация из программы туров)
        • FlightSourceMode – локальный или удаленный перелет (внутренняя информация из программы туров)
        • Id – идентификатор базового шаблона услуги (внутренняя информация из программы туров)
        • SvKey – ключ типа услуги
        • IsSubCode1 – признак наличия доп. описания 1
        • IsSubCode2 – признак наличия доп. описания 2
        • IsPartnerBasedOn – признак услуга с приоритетным подбором поставщика
        • Day – день предоставления услуги
        • DurationInNight – продолжительность услуги в ночах
        • BeginDateTime – дата предоставления услуги
        • IsHooded – признак скрытая услуга
        • IsDeleted – признак удаляемая услуга
        • IsNotCalculate – признак не рассчитываемая услуга
        • PacketId – ключ пакета
        • Index – порядковый номер услуги
      • NotRouteServices – не используется
      • MinCostServicesComposition – массив состав услуг минимальной цены
        • Key – ключ
          • TemplateId – идентификатор шаблона
          • PatternId – идентификатор вкладки
          • SettingId – идентификатор услуги
        • Value – значение
          • ServiceType – тип услуги
          • Code – ключ услуги
          • SubCode1 – доп. описание 1
          • SubCode2 – доп. описание 2
          • PacketId – пакет услуги
          • PartnerId – партнер услуги
          • CountryId – страна услуги
          • CityId – город услуги
          • Day – день предоставления услуги
          • DurationInNight – продолжительность услуги в ночах
      • FlightWeight
      • LinkingFlightsRules – объект правил связывания
        • notCombineDifferentAirlineRule – объект не скрещивать авиакомпании
          • airlines – авиакомпании
          • flightSettings – массив ключей ServiceId, PatternId, FlightId
          • enabled – флаг включен/выключен
        • checkPlusMinus1CharterRule – объект Отличие номера рейса на 1
          • FlightSettingPairs – массив чартеров, для которых это правило будет выполняться
          • enabled – флаг включен/выключен
        • notCombineDifferentTariffGroupRule – объект не комбинировать рейсы от разных классов перелетов
          • FlightSettings – массив ключей ServiceId, PatternId, FlightId
          • enabled – флаг включен/выключен
        • notCombineDifferentPartnerRule – объект не комбинировать рейсы от разных партнеров
          • FlightSettings – массив ключей ServiceId, PatternId, FlightId
          • enabled – флаг включен/выключен
        • departureCityEqualsArrivalCityRule – объект Город вылета = городу прилета
          • FlightSettingPairs – чартеры, для которых это будет выполняться
          • enabled – флаг включен/выключен
        • combineOnlySpecificChartersRule – объект не комбинировать различные классы перелетов
          • settings – массив ключей чартеров CharterIds и ServiceId, PatternId, FlightId
          • enabled – флаг включен/выключен
      • RouteSubVariants – не используется
    • SecondaryFiltersResult – результат, если заданы дополнительные фильтры
      • TourTypes – типы тура
        • Id
        • Name
        • ParentId
        • Type
      • TourPrograms – информация по каждой турпрограмме
        • Key
        • Name
        • TourUrl
        • BookingConditions
        • IsLandOnly
        • IsRestrictMultiHotels
        • IsHotelTemplates
        • IsRouteServices
        • MultiHotelDelta
        • Rate
        • DateStart
        • DateEnd
        • Status
          • Key
          • Value
        • Templates
          • $id
          • $id
        • Types
          • Id
          • Name
          • ParentId
          • Type
        • LinkingFlightsRules
          • notCombineDifferentAirlineRule
            • airlines
            • flightSettings
            • enabled
          • checkPlusMinus1CharterRule
            • FlightSettingPairs
            • enabled
          • notCombineDifferentTariffGroupRule
            • FlightSettings
            • enabled
          • notCombineDifferentPartnerRule
            • FlightSettings
            • enabled
          • departureCityEqualsArrivalCityRule
            • FlightSettingPairs
            • enabled
          • combineOnlySpecificChartersRule
            • settings
            • enabled
        • XmlSettings – xml
        • Type
      • TourDurations
      • TourDates
        • HotelCities – не используется
          • '
        • HotelResorts – не используется
          • '
        • HotelCategories – не используется
          • '
        • Hotels – не используется
          • '
        • Pansions – не используется
          • '
        • Airlines – авиакомпании в дополнительных фильтрах
          • '
        • FlightTariffs – класс перелета в дополнительных фильтрах
          • '
        • DepartureCities – города вылета в дополнительных фильтрах
          • '
        • DepartureAirports – аэропорты вылета в дополнительных фильтрах
          • '
        • ArrivalCities – города прибытия в дополнительных фильтрах
          • '
        • ArrivalAirports – аэропорты прибытия в дополнительных фильтрах
          • '
        • HotelTypes – не используется
          • '
Пример

Вызов метода

GET http://localhost:9000/TourSearchOwin/individuals/avia/1/35/20180830/20180908?
AdultCount=2&AviaQuota=5&CurrencyName=EU&PageNumber=1&PageSize=20&departureFlightNoTransfer=true

Возвращаемый результат метода (в формате JSON)

{
	"CheckMessages": null,
	"Message": {
		"Key": 0,
		"Value": null
	},
	"Result": [{
		"Key": 100002328,
		"Name": "Общая проверка системы_Aviabooking",
		"TourUrl": "www.megatec.ru",
		"BookingConditions": "<p><strong>Условия бронирования<\/strong><\/p>",
		"DefaultManagers": [-1],
		"Manager": 128,
		"Branches": [1],
		"DetermineTheBranchOnCity": false,
		"StartDate": "2018-08-30T00:00:00",
		"Duration": 10,
		"DurationInNight": 9,
		"Types": [2],
		"Cost": 7.02,
		"Rate": "EU",
		"CityDepature": {
			"Key": 1,
			"Value": "Москва"
		},
		"CountryId": 90,
		"Services": [{
			"DepartureCity": {
				"Key": 1,
				"Value": "Москва"
			},
			"DepartureCountry": {
				"Key": 460,
				"Value": "Россия"
			},
			"ArrivalCity": {
				"Key": 35,
				"Value": "Вена"
			},
			"ArrivalCountry": {
				"Key": 90,
				"Value": "Австрия"
			},
			"DepartureAirport": {
				"Key": "DME",
				"Value": "Домодедово"
			},
			"ArrivalAirport": {
				"Key": "VIE",
				"Value": "Vena"
			},
			"Airline": {
				"Key": "7U",
				"Value": "Авиаэнерго"
			},
			"Aircraft": {
				"Key": "727",
				"Value": "Boeing"
			},
			"Flight": {
				"Key": 773,
				"Value": "111"
			},
			"DepartureTime": "10:00:00",
			"ArrivalTime": "13:00:00",
			"EndDateTime": "2018-08-30T13:00:00",
			"FlightDetails": [{
				"Tariff": {
					"Key": 89,
					"Code": "Y",
					"Name": "Экономический класс"
				},
				"Cost": 7.02,
				"QuotaStatus": {
					"PlacesStatus": 4,
					"FreePlaces": 0,
					"IsFewPlaces": false
				},
				"PartnerId": 10760,
				"ByPax": true,
				"Partner": {
					"Key": 0,
					"Value": null
				}
			}],
			"FlightSetting": {
				"ServiceId": 3,
				"PatternId": 1,
				"FlightId": 1
			},
			"FlightSourceMode": 1,
			"Id": 3,
			"SvKey": 1,
			"IsSubCode1": true,
			"IsSubCode2": false,
			"IsPartnerBasedOn": false,
			"Day": 1,
			"DurationInNight": 0,
			"BeginDateTime": "2018-08-30T10:00:00",
			"IsHooded": false,
			"IsDeleted": false,
			"IsNotCalculate": false,
			"PacketId": 779,
			"Index": 0
		},
		{
			"DepartureCity": {
				"Key": 35,
				"Value": "Вена"
			},
			"DepartureCountry": {
				"Key": 90,
				"Value": "Австрия"
			},
			"ArrivalCity": {
				"Key": 1,
				"Value": "Москва"
			},
			"ArrivalCountry": {
				"Key": 460,
				"Value": "Россия"
			},
			"DepartureAirport": {
				"Key": "VIE",
				"Value": "Vena"
			},
			"ArrivalAirport": {
				"Key": "DME",
				"Value": "Домодедово"
			},
			"Airline": {
				"Key": "7U",
				"Value": "Авиаэнерго"
			},
			"Aircraft": {
				"Key": "727",
				"Value": "Boeing"
			},
			"Flight": {
				"Key": 774,
				"Value": "222"
			},
			"DepartureTime": "15:00:00",
			"ArrivalTime": "16:00:00",
			"EndDateTime": "2018-09-08T16:00:00",
			"FlightDetails": [{
				"Tariff": {
					"Key": 89,
					"Code": "Y",
					"Name": "Экономический класс"
				},
				"Cost": 0,
				"QuotaStatus": {
					"PlacesStatus": 4,
					"FreePlaces": 0,
					"IsFewPlaces": false
				},
				"PartnerId": 10760,
				"ByPax": true,
				"Partner": {
					"Key": 0,
					"Value": null
				}
			}],
			"FlightSetting": {
				"ServiceId": 4,
				"PatternId": 2,
				"FlightId": 1
			},
			"FlightSourceMode": 1,
			"Id": 4,
			"SvKey": 1,
			"IsSubCode1": true,
			"IsSubCode2": false,
			"IsPartnerBasedOn": false,
			"Day": 10,
			"DurationInNight": 0,
			"BeginDateTime": "2018-09-08T15:00:00",
			"IsHooded": false,
			"IsDeleted": false,
			"IsNotCalculate": false,
			"PacketId": 779,
			"Index": 1
		}],
		"NotRouteServices": [],
		"MinCostServicesComposition": [{
			"Key": {
				"TemplateId": 3,
				"PatternId": 1,
				"SettingId": 1
			},
			"Value": {
				"ServiceType": 1,
				"Code": 773,
				"SubCode1": 89,
				"SubCode2": 1,
				"PacketId": 779,
				"PartnerId": 10760,
				"CountryId": 90,
				"CityId": 35,
				"Day": 1,
				"DurationInNight": 0
			}
		},
		{
			"Key": {
				"TemplateId": 4,
				"PatternId": 2,
				"SettingId": 1
			},
			"Value": {
				"ServiceType": 1,
				"Code": 774,
				"SubCode1": 89,
				"SubCode2": 35,
				"PacketId": 779,
				"PartnerId": 10760,
				"CountryId": 460,
				"CityId": 1,
				"Day": 10,
				"DurationInNight": 0
			}
		}],
		"FlightWeight": 2,
		"LinkingFlightsRules": {
			"notCombineDifferentAirlineRule": {
				"airlines": [],
				"flightSettings": [],
				"enabled": false
			},
			"checkPlusMinus1CharterRule": {
				"FlightSettingPairs": [],
				"enabled": false
			},
			"notCombineDifferentTariffGroupRule": {
				"FlightSettings": [],
				"enabled": true
			},
			"notCombineDifferentPartnerRule": {
				"FlightSettings": [],
				"enabled": false
			},
			"departureCityEqualsArrivalCityRule": {
				"FlightSettingPairs": [],
				"enabled": false
			},
			"combineOnlySpecificChartersRule": {
				"settings": [],
				"enabled": false
			}
		},
		"RouteSubVariants": [],
		"Routes": 1
	}],
	"SecondaryFiltersResult": {
		"TourTypes": [{
			"Id": 2,
			"Name": "Стандартный тур",
			"ParentId": null,
			"Type": "TourType"
		}],
		"TourPrograms": [{
			"Key": 100002328,
			"Name": "Общая проверка системы_Aviabooking",
			"TourUrl": "www.megatec.ru",
			"BookingConditions": "<p><strong>Условия бронирования<\/strong><\/p>",
			"DefaultManagers": [-1],
			"Manager": 128,
			"Branches": [1],
			"DetermineTheBranchOnCity": false,
			"IsLandOnly": false,
			"IsRestrictMultiHotels": false,
			"IsHotelTemplates": false,
			"IsRouteServices": true,
			"MultiHotelDelta": 0,
			"Rate": "EU",
			"DateStart": "2018-06-21T00:00:00Z",
			"DateEnd": "2019-05-31T00:00:00Z",
			"UpdateDate": null,
			"Status": {
				"Key": 3,
				"Value": "Доступен для продажи"
			},
			"Templates": [{
				"$id": "1"
			},
			{
				"$id": "2"
			}],
			"Types": [{
				"Id": 2,
				"Name": "Стандартный тур",
				"ParentId": null,
				"Type": "TourType"
			}],
			"LinkingFlightsRules": {
				"notCombineDifferentAirlineRule": {
					"airlines": [],
					"flightSettings": [],
					"enabled": false
				},
				"checkPlusMinus1CharterRule": {
					"FlightSettingPairs": [],
					"enabled": false
				},
				"notCombineDifferentTariffGroupRule": {
					"FlightSettings": [],
					"enabled": true
				},
				"notCombineDifferentPartnerRule": {
					"FlightSettings": [],
					"enabled": false
				},
				"departureCityEqualsArrivalCityRule": {
					"FlightSettingPairs": [],
					"enabled": false
				},
				"combineOnlySpecificChartersRule": {
					"settings": [],
					"enabled": false
				}
			},
			"XmlSettings": "<TourProgram xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">",
			"Type": "TourProgram"
		}],
		"TourDurations": [10],
		"TourDates": ["2018-08-30T00:00:00"],
		"HotelCities": [],
		"HotelResorts": [],
		"HotelCategories": [],
		"Hotels": [],
		"Pansions": [],
		"Airlines": [{
			"Key": 3,
			"Code": "7U",
			"Name": "Авиаэнерго",
			"NameLat": "en_Авиаэнерго",
			"Type": "AirLine"
		}],
		"FlightTariffs": [{
			"Key": 89,
			"Code": "Y",
			"Name": "Экономический класс",
			"NameLat": "Coach economy",
			"Group": null,
			"Type": "AirService"
		}],
		"DepartureCities": [{
			"key": 1,
			"Country": {
				"key": 460,
				"name": "Россия",
				"Code": null,
				"CitizenName": "Россия",
				"CitizenNameLat": "Russia",
				"PassportMinDurCheckFrom": 0,
				"CheckINN": true,
				"PassportMinDur": null,
				"INNName": "ИНН",
				"Web": 0,
				"WebImage": "",
				"WebHTTP": "",
				"AnkLang": 0,
				"Type": "Country"
			},
			"name": "Москва",
			"Code": "MOW",
			"Web": 0,
			"RSKey": 0,
			"WebImage": null,
			"IsDeparture": 1,
			"Type": "City"
		}],
		"DepartureAirports": [{
			"Key": 12,
			"Code": "DME",
			"Name": "Домодедово",
			"NameLat": "Домодедово",
			"CityKey": 1,
			"CountryKey": 460,
			"Letter": "D",
			"Site": 0,
			"Type": "Airport"
		}],
		"ArrivalCities": [{
			"key": 1,
			"Country": {
				"key": 460,
				"name": "Россия",
				"Code": null,
				"CitizenName": "Россия",
				"CitizenNameLat": "Russia",
				"PassportMinDurCheckFrom": 0,
				"CheckINN": true,
				"PassportMinDur": null,
				"INNName": "ИНН",
				"Web": 0,
				"WebImage": "",
				"WebHTTP": "",
				"AnkLang": 0,
				"Type": "Country"
			},
			"name": "Москва",
			"Code": "MOW",
			"Web": 0,
			"RSKey": 0,
			"WebImage": null,
			"IsDeparture": 1,
			"Type": "City"
		}],
		"ArrivalAirports": [{
			"Key": 12,
			"Code": "DME",
			"Name": "Домодедово",
			"NameLat": "Домодедово",
			"CityKey": 1,
			"CountryKey": 460,
			"Letter": "D",
			"Site": 0,
			"Type": "Airport"
		}],
		"HotelTypes": []
	}
}