Мастер-Тур(15):API для отдачи цен в поисковые системы — различия между версиями
| [досмотренная версия] | [досмотренная версия] |
Biryukov (обсуждение | вклад) (→Выгрузка списка отелей (GetHotels)) |
Biryukov (обсуждение | вклад) (→Установка) |
||
| (не показано 57 промежуточных версий 7 участников) | |||
| Строка 17: | Строка 17: | ||
Для работы с web-сервисом необходимо на отдающей стороне установить [[Мастер-Тур(15):Установка#Установка службы поиска|службу поиска]].<br /> | Для работы с web-сервисом необходимо на отдающей стороне установить [[Мастер-Тур(15):Установка#Установка службы поиска|службу поиска]].<br /> | ||
После установки web-сервис будет доступен по адресу ''<nowiki>http://значение настройки "serviceAddress" в TourSearchOwin/searchApi?action="название метода"</nowiki>'' (пример: ''http://localhost:9000/TourSearchOwin/searchApi?action=GetCountries'') | После установки web-сервис будет доступен по адресу ''<nowiki>http://значение настройки "serviceAddress" в TourSearchOwin/searchApi?action="название метода"</nowiki>'' (пример: ''http://localhost:9000/TourSearchOwin/searchApi?action=GetCountries'') | ||
| + | |||
| + | Для поддержки систем с большой нагрузкой можно использовать сторонние "балансировщики нагрузки". | ||
| + | Пример настройки балансировщика [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]]. | ||
| + | |||
| + | ==Swagger== | ||
| + | Работу методов можно проверить с помощью Swagger по пути: ''http://localhost:9000/TourSearchOwin/SwaggerUI'' | ||
==Загрузка справочников== | ==Загрузка справочников== | ||
| Строка 306: | Строка 312: | ||
** '''departureCityIds *''' – идентификатор города(ов) отправления (из метода [[#Выгрузка списка городов вылета (GetDepartCities)|GetDepartCities]]) | ** '''departureCityIds *''' – идентификатор города(ов) отправления (из метода [[#Выгрузка списка городов вылета (GetDepartCities)|GetDepartCities]]) | ||
** '''countryId *''' – идентификатор страны прибытия (из метода [[#Выгрузка списка стран (GetCountries)|GetCountries]]) | ** '''countryId *''' – идентификатор страны прибытия (из метода [[#Выгрузка списка стран (GetCountries)|GetCountries]]) | ||
| − | ** '''resortIds *''' – идентификатор города(ов) прибытия (из метода [[#Выгрузка списка городов (GetResorts)|GetResorts]]), при значении ''-1'' | + | ** '''resortIds *''' – идентификатор города(ов) прибытия (из метода [[#Выгрузка списка городов (GetResorts)|GetResorts]]), при значении ''-1'' передается город отправления "Без перелета" |
** '''tourTypeIds *''' – идентификатор типа(ов) тура (из метода [[#Выгрузка типов тура (GetTourTypes) начиная с релиза 15.4|GetTourTypes]]), при значении ''-1'' будут переданы все типы тура в рамках данной страны | ** '''tourTypeIds *''' – идентификатор типа(ов) тура (из метода [[#Выгрузка типов тура (GetTourTypes) начиная с релиза 15.4|GetTourTypes]]), при значении ''-1'' будут переданы все типы тура в рамках данной страны | ||
** '''fromDateTime''' – дата (в формате dd.MM.yyyy HH:mm:ss), начиная с которой будут выгружаться изменения (то есть будут получены только те доступные программы туров, которые изменялись, начиная с указанной даты) | ** '''fromDateTime''' – дата (в формате dd.MM.yyyy HH:mm:ss), начиная с которой будут выгружаться изменения (то есть будут получены только те доступные программы туров, которые изменялись, начиная с указанной даты) | ||
| Строка 489: | Строка 495: | ||
** '''latitude''' – GPS координаты: географическая широта (обрабатывается с релиза 15.6) | ** '''latitude''' – GPS координаты: географическая широта (обрабатывается с релиза 15.6) | ||
** '''longitude''' – GPS координаты: географическая долгота (обрабатывается с релиза 15.6) | ** '''longitude''' – GPS координаты: географическая долгота (обрабатывается с релиза 15.6) | ||
| + | ** '''timeFrom''' – заезд в отель (обрабатывается с релиза 15.7) | ||
| + | ** '''timeTo''' – выезд из отеля (обрабатывается с релиза 15.7) | ||
| + | ** '''countryId''' – идентификатор страны, в которой расположен отель (обрабатывается с релиза 15.9) | ||
| + | ** '''countryName''' – название страны, в которой расположен отель (обрабатывается с релиза 15.9) | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| Строка 503: | Строка 513: | ||
"hotels": [ | "hotels": [ | ||
{ | { | ||
| − | "id": | + | "id": 112830, |
| − | + | "name": "0012", | |
| − | + | "hotelCategoryId": 964, | |
| − | + | "hotelCategoryName": "!!", | |
| − | + | "resortId": 1464, | |
| − | + | "resortName": "Адлер", | |
| − | + | "areaId": 1187, | |
| − | + | "areaName": "Amur Oblast", | |
| − | + | "address": "", | |
| − | + | "phone": "", | |
| − | + | "email": "", | |
| − | + | "fax": "", | |
| − | + | "http": null, | |
| − | + | "latitude": "", | |
| − | + | "longitude": "", | |
| + | "timeFrom": "", | ||
| + | "timeTo": "", | ||
| + | "countryId": 460, | ||
| + | "countryName": "Россия" | ||
}, | }, | ||
{ | { | ||
| − | "id": | + | "id": 111884, |
| − | + | "name": "111", | |
| − | + | "hotelCategoryId": 964, | |
| − | + | "hotelCategoryName": "!!", | |
| − | + | "resortId": 35, | |
| − | + | "resortName": "Вена", | |
| − | + | "areaId": -1, | |
| − | + | "areaName": "Без курорта", | |
| − | + | "address": "", | |
| − | + | "phone": null, | |
| − | + | "email": "", | |
| − | + | "fax": null, | |
| − | + | "http": null, | |
| − | + | "latitude": null, | |
| − | + | "longitude": null, | |
| + | "timeFrom": "", | ||
| + | "timeTo": "", | ||
| + | "countryId": 90, | ||
| + | "countryName": "Австрия" | ||
}, | }, | ||
{ | { | ||
| − | "id": | + | "id": 112827, |
| − | + | "name": "11111", | |
| − | + | "hotelCategoryId": 964, | |
| − | + | "hotelCategoryName": "!!", | |
| − | + | "resortId": 1313, | |
| − | + | "resortName": "Kazan", | |
| − | + | "areaId": -1, | |
| − | + | "areaName": "Без курорта", | |
| − | + | "address": "", | |
| − | + | "phone": "", | |
| − | + | "email": "", | |
| − | + | "fax": "", | |
| − | + | "http": null, | |
| − | + | "latitude": "", | |
| − | + | "longitude": "", | |
| + | "timeFrom": "", | ||
| + | "timeTo": "", | ||
| + | "countryId": 6259, | ||
| + | "countryName": "Russia" | ||
}, | }, | ||
{ | { | ||
| − | "id": | + | "id": 12303, |
| − | + | "name": "4 Barcelona", | |
| − | + | "hotelCategoryId": 964, | |
| − | + | "hotelCategoryName": "!!", | |
| − | + | "resortId": 19, | |
| − | + | "resortName": "Барселона", | |
| − | + | "areaId": -1, | |
| − | + | "areaName": "Без курорта", | |
| − | + | "address": null, | |
| − | + | "phone": null, | |
| − | + | "email": null, | |
| − | + | "fax": null, | |
| − | + | "http": null, | |
| − | + | "latitude": null, | |
| − | + | "longitude": null, | |
| + | "timeFrom": "", | ||
| + | "timeTo": "", | ||
| + | "countryId": 84, | ||
| + | "countryName": "Испания" | ||
} | } | ||
] | ] | ||
| Строка 608: | Строка 634: | ||
** '''ForChildren''' – для детей | ** '''ForChildren''' – для детей | ||
** '''AddCost''' – доплаты | ** '''AddCost''' – доплаты | ||
| + | ** '''checkInTime''' – время заезда в отель (обрабатывается с релиза 15.6) | ||
| + | ** '''checkOutTime''' – время выезда из отеля (обрабатывается с релиза 15.6) | ||
| + | ** '''latitude''' – GPS координаты: географическая широта (обрабатывается с релиза 15.6) | ||
| + | ** '''longitude''' – GPS координаты: географическая долгота (обрабатывается с релиза 15.6) | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| Строка 651: | Строка 681: | ||
"AdditionalService": "<p>Дополнительные услуги<\/p>", | "AdditionalService": "<p>Дополнительные услуги<\/p>", | ||
"ForChildren": "<p>Для детей<\/p>", | "ForChildren": "<p>Для детей<\/p>", | ||
| − | "AddCost": "<p>Доплата<\/p>" | + | "AddCost": "<p>Доплата<\/p>", |
| + | "checkInTime": null, | ||
| + | "checkOutTime": null, | ||
| + | "latitude": null, | ||
| + | "longitude": null | ||
} | } | ||
}</syntaxhighlight> | }</syntaxhighlight> | ||
| Строка 667: | Строка 701: | ||
** '''code''' – код типа номера | ** '''code''' – код типа номера | ||
** '''name''' – название типа номера | ** '''name''' – название типа номера | ||
| + | ** '''nameLat''' – латинское название типа номера | ||
** '''mainplaces''' – количество основных мест | ** '''mainplaces''' – количество основных мест | ||
** '''extraplaces''' – количество дополнительных мест | ** '''extraplaces''' – количество дополнительных мест | ||
| Строка 680: | Строка 715: | ||
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
{ | { | ||
| − | + | "version": "1.08", | |
| − | + | "rooms": [ | |
| − | { | + | { |
| − | + | "id": 1245, | |
| − | + | "code": "65", | |
| − | + | "name": "1-мест.", | |
| − | + | "nameLat": "1-мест.", | |
| − | + | "mainplaces": 2, | |
| − | + | "extraplaces": 3 | |
| − | { | + | }, |
| − | + | { | |
| − | + | "id": 2759, | |
| − | + | "code": "1BR", | |
| − | + | "name": "1-местный номер", | |
| − | + | "nameLat": "1-bed room", | |
| − | + | "mainplaces": 1, | |
| − | { | + | "extraplaces": 0 |
| − | + | }, | |
| − | + | { | |
| − | + | "id": 936, | |
| − | + | "code": "19", | |
| − | + | "name": "2 bedroom apartment", | |
| − | + | "nameLat": "2 bedroom apartment", | |
| − | { | + | "mainplaces": 2, |
| − | + | "extraplaces": 0 | |
| − | + | }, | |
| − | + | { | |
| − | + | "id": 1242, | |
| − | + | "code": "61", | |
| − | + | "name": "2-мест.", | |
| − | { | + | "nameLat": "2-мест.", |
| − | + | "mainplaces": 2, | |
| − | + | "extraplaces": 3 | |
| − | + | }, | |
| − | + | { | |
| − | + | "id": 68, | |
| − | + | "code": "APT", | |
| − | { | + | "name": "Apartment", |
| − | + | "nameLat": "Apartment", | |
| − | + | "mainplaces": 3, | |
| − | + | "extraplaces": 3 | |
| − | + | }, | |
| − | + | { | |
| − | + | "id": 976, | |
| − | { | + | "code": "APT", |
| − | + | "name": "Apartment", | |
| − | + | "nameLat": "Apartment", | |
| − | + | "mainplaces": 2, | |
| − | + | "extraplaces": 3 | |
| − | + | }, | |
| − | + | { | |
| − | + | "id": 1692, | |
| + | "code": "DBL", | ||
| + | "name": "DBL", | ||
| + | "nameLat": null, | ||
| + | "mainplaces": 2, | ||
| + | "extraplaces": 0 | ||
| + | }, | ||
| + | { | ||
| + | "id": 681, | ||
| + | "code": "1552485", | ||
| + | "name": "DeLuxe", | ||
| + | "nameLat": "DeLuxe", | ||
| + | "mainplaces": 2, | ||
| + | "extraplaces": 0 | ||
| + | }, | ||
| + | { | ||
| + | "id": 928, | ||
| + | "code": "DBL", | ||
| + | "name": "Double", | ||
| + | "nameLat": "Double", | ||
| + | "mainplaces": 2, | ||
| + | "extraplaces": 0 | ||
| + | }, | ||
| + | { | ||
| + | "id": 822, | ||
| + | "code": "FAM", | ||
| + | "name": "Family", | ||
| + | "nameLat": "Family", | ||
| + | "mainplaces": 2, | ||
| + | "extraplaces": 2 | ||
| + | }, | ||
| + | { | ||
| + | "id": 680, | ||
| + | "code": "1552486", | ||
| + | "name": "Junior Suite", | ||
| + | "nameLat": "Junior Suite", | ||
| + | "mainplaces": 2, | ||
| + | "extraplaces": 0 | ||
| + | }, | ||
| + | { | ||
| + | "id": 38, | ||
| + | "code": "QDRPL", | ||
| + | "name": "Quadriple", | ||
| + | "nameLat": "Quadriple", | ||
| + | "mainplaces": 4, | ||
| + | "extraplaces": 3 | ||
| + | }, | ||
| + | { | ||
| + | "id": 1, | ||
| + | "code": "SGL", | ||
| + | "name": "Single", | ||
| + | "nameLat": "Single", | ||
| + | "mainplaces": 1, | ||
| + | "extraplaces": 0 | ||
| + | }, | ||
| + | { | ||
| + | "id": 75, | ||
| + | "code": "EST", | ||
| + | "name": "Studio", | ||
| + | "nameLat": "Studio", | ||
| + | "mainplaces": 8, | ||
| + | "extraplaces": 4 | ||
| + | }, | ||
| + | { | ||
| + | "id": 31, | ||
| + | "code": "TRPL", | ||
| + | "name": "Triple", | ||
| + | "nameLat": "Triple", | ||
| + | "mainplaces": 3, | ||
| + | "extraplaces": 3 | ||
| + | }, | ||
| + | { | ||
| + | "id": 634, | ||
| + | "code": "1", | ||
| + | "name": "Без типа номера", | ||
| + | "nameLat": "Без типа номера", | ||
| + | "mainplaces": 20, | ||
| + | "extraplaces": 0 | ||
| + | }, | ||
| + | { | ||
| + | "id": 521, | ||
| + | "code": "354548", | ||
| + | "name": "Двухместный", | ||
| + | "nameLat": null, | ||
| + | "mainplaces": null, | ||
| + | "extraplaces": null | ||
| + | }, | ||
| + | { | ||
| + | "id": 520, | ||
| + | "code": "356555", | ||
| + | "name": "Двухместный семейный", | ||
| + | "nameLat": null, | ||
| + | "mainplaces": null, | ||
| + | "extraplaces": null | ||
| + | }, | ||
| + | { | ||
| + | "id": 2253, | ||
| + | "code": "20", | ||
| + | "name": "Двухместный стандарт", | ||
| + | "nameLat": null, | ||
| + | "mainplaces": 2, | ||
| + | "extraplaces": null | ||
| + | }, | ||
| + | { | ||
| + | "id": 413, | ||
| + | "code": "349642", | ||
| + | "name": "Стандарт", | ||
| + | "nameLat": null, | ||
| + | "mainplaces": 2, | ||
| + | "extraplaces": 0 | ||
| + | } | ||
| + | ] | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Строка 737: | Строка 883: | ||
</div></div><br /> | </div></div><br /> | ||
| − | ===Выгрузка списка | + | ===Выгрузка списка категорий номеров (GetRoomTypes) начиная с релиза 15.3=== |
Метод возвращает список всех доступных категорий номеров, на которые есть актуальные цены. | Метод возвращает список всех доступных категорий номеров, на которые есть актуальные цены. | ||
* Формат запроса: | * Формат запроса: | ||
| Строка 747: | Строка 893: | ||
** '''code''' – код категории номера | ** '''code''' – код категории номера | ||
** '''name''' – название категории номера | ** '''name''' – название категории номера | ||
| + | ** '''nameLat''' – латинское название категории номера | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| Строка 758: | Строка 905: | ||
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
{ | { | ||
| − | + | "version": "1.08", | |
| − | + | "roomTypes": [ | |
| − | { | + | { |
| − | + | "id": 17754, | |
| − | + | "code": "1BED", | |
| − | + | "name": "1 room", | |
| − | + | "nameLat": null | |
| − | + | }, | |
| − | + | { | |
| − | + | "id": 8908, | |
| − | + | "code": "10105", | |
| − | + | "name": "1-комн. станд. (с доп.местом)", | |
| − | { | + | "nameLat": null |
| − | + | }, | |
| − | + | { | |
| − | + | "id": 8078, | |
| − | + | "code": "2BED", | |
| − | { | + | "name": "2 rooms", |
| − | + | "nameLat": null | |
| − | + | }, | |
| − | + | { | |
| − | + | "id": 7648, | |
| − | + | "code": "357625", | |
| − | } | + | "name": "357625", |
| − | </syntaxhighlight> | + | "nameLat": null |
| + | }, | ||
| + | |||