Мастер-Тур(15):API для разработки поиска авиабилетов — различия между версиями
[досмотренная версия] | [досмотренная версия] |
Biryukov (обсуждение | вклад) |
Biryukov (обсуждение | вклад) |
||
Строка 301: | Строка 301: | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
− | Вызов метода | + | Вызов метода |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/departures? | GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/departures? | ||
Строка 322: | Строка 322: | ||
Метод производит выгрузку всех доступных направлений. | Метод производит выгрузку всех доступных направлений. | ||
* Формат запроса: | * Формат запроса: | ||
− | ** GET .../TourSearchOwin/individuals/avia/twoway/arrivals/ | + | ** GET .../TourSearchOwin/individuals/avia/twoway/arrivals/1/countries? |
* Принимаемые параметры ( '''*''' – обязательный): | * Принимаемые параметры ( '''*''' – обязательный): | ||
− | ** ''' | + | ** '''1 *''' – идентификатор города отправления (из контроллера [[#Выгрузка городов отправления (twoway)|''.../TourSearchOwin/individuals/avia/twoway/departures?'']]) |
* Возвращаемый результат: | * Возвращаемый результат: | ||
** '''Name''' – название страны | ** '''Name''' – название страны | ||
Строка 333: | Строка 333: | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
− | Вызов метода | + | Вызов метода |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/arrivals/1/countries? | GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/arrivals/1/countries? | ||
Строка 361: | Строка 361: | ||
Метод возвращает список всех доступных городов по определенному городу отправления и стране прибытия. | Метод возвращает список всех доступных городов по определенному городу отправления и стране прибытия. | ||
* Формат запроса: | * Формат запроса: | ||
− | ** GET .../TourSearchOwin/individuals/avia/twoway/arrivals/ | + | ** GET .../TourSearchOwin/individuals/avia/twoway/arrivals/1/90? |
* Принимаемые параметры ( '''*''' – обязательный): | * Принимаемые параметры ( '''*''' – обязательный): | ||
− | ** ''' | + | ** '''1 *''' – идентификатор города отправления (полученный из метода ''.../TourSearchOwin/individuals/avia/twoway/departures?'') |
− | ** ''' | + | ** '''90 *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/individuals/avia/twoway/arrivals/1/countries?'') |
* Возвращаемый результат: | * Возвращаемый результат: | ||
** '''Key''' – идентификатор города | ** '''Key''' – идентификатор города | ||
Строка 372: | Строка 372: | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
− | Вызов метода | + | Вызов метода |
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/arrivals/1/90? | GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/arrivals/1/90? | ||
Строка 390: | Строка 390: | ||
</div></div><br /> | </div></div><br /> | ||
+ | ===Выгрузка актуальных дат вылета (twoway)=== | ||
+ | Метод производит выгрузку доступных дат вылета для поискового запроса. | ||
+ | * Формат запроса: | ||
+ | ** GET .../TourSearchOwin/individuals/avia/twoway/departures/dates/1/35? | ||
+ | * Принимаемые параметры ( '''*''' – обязательный): | ||
+ | ** '''1 *''' – идентификатор города отправления (полученный из метода ''.../TourSearchOwin/individuals/avia/twoway/departures?'') | ||
+ | ** '''35 *''' – идентификатор города прибытия (полученный из метода ''.../TourSearchOwin/individuals/avia/twoway/arrivals/1/90?'') | ||
+ | * Возвращаемый результат: | ||
+ | ** массив дат | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
+ | Вызов метода | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/departures/dates/1/35? | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | ["28.08.2018", | ||
+ | "29.08.2018", | ||
+ | "30.08.2018", | ||
+ | "31.08.2018", | ||
+ | "01.09.2018", | ||
+ | "02.09.2018",] | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ===Выгрузка актуальных дат возврата (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?'') | ||
+ | * Возвращаемый результат: | ||
+ | ** массив дат | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
+ | Вызов метода | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/departures/dates/1/35/20180830? | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода (в формате JSON) | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | ["30.08.2018", | ||
+ | "31.08.2018", | ||
+ | "01.09.2018", | ||
+ | "02.09.2018",] | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
Версия 15:02, 28 августа 2018
Версия статьи от 28-08-2018.
Поддерживаемые версии ПК «Мастер-Тур»: |
Содержание
- 1 Введение
- 2 Установка
- 3 Список методов
- 3.1 Авторизация (Token)
- 3.2 Выгрузка настроек службы поиска (Settings)
- 3.3 Выгрузка списка валют (Currency)
- 3.4 Выгрузка квотируемых услуг системы (QuotedServices)
- 3.5 Выгрузка городов отправления (twoway)
- 3.6 Выгрузка списка стран прибытия (twoway)
- 3.7 Выгрузка списка городов прибытия (twoway)
- 3.8 Выгрузка актуальных дат вылета (twoway)
- 3.9 Выгрузка актуальных дат возврата (twoway)
Введение
Данный 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?
- Принимаемые параметры ( * – обязательный):
- 1 * – идентификатор города отправления (из контроллера .../TourSearchOwin/individuals/avia/twoway/departures?)
- Возвращаемый результат:
- 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",]
|