Спецификация метода HotelTreeResults
Пример вызова
Протокол: HTTP GET
Адресная строка: api/HotelTreeResults/Index?treeId={treeId}&id_Profile={id_Profile}&securityKey={securityKey}×tamp={timestamp}&mock={mock}
Метод апи: Index
Возвращает полную (если timestamp == 0) или разностную (если в поле timestamp передано время, начиная с которой формируется разница)
выдачу отелей по идентификатору дерева treeId
Информация о запросе
Ниже приведены параметры запроса и их краткое описание
Параметры запроса
Название параметра | Описание | ТИП |
---|---|---|
treeId | идентификатор дерева из ответа HotelTreeInitialize |
GET. |
id_Profile | идентификатор финансового профиля |
GET. |
securityKey | ключ для доступа к сервису, предоставляется по запросу на support@corteos.ru |
GET. |
timestamp | отсечка по времени, для получения частичных результатов, при получении первого ответа следует указать 0, перед запросом следует зафиксировать DateTime.Now.Ticks и в каждом следующем переопросе его итеративно передавать |
GET. |
mock | использовать в ответе фиктивные данные для разработки |
GET. |
Описание работы сервиса
Диаграмма бизнес-процесса
Сервис HotelTreeResults является вторым шагом бизнес-процесса поиска гостиниц, возвращает отстроенное на данный момент времени дерево.

Пример успешного ответа
<?xml version="1.0" encoding="utf-8" ?>
<Response HasErrors="false" HasWarnings="false">
<EngineResponse>
<HotelTreeResponse>
<Errors/>
<HotelTree Date="2017-07-24T11:19:19.8953478+03:00" TreeID="6f548caf9441b06b84db868e44a41cd1">
<States>
<Status id_System="3" methodName="HotelTreeInitMethodAcase" isFinished="true" StatusDescription="Поиск в системе Academservice завершен успешно" DateChanged="2017-07-24T11:20:12.536144+03:00"/>
</States>
<Items>
<HotelTreeItem Stars="3" Longitude="37.389736" Latitude="55.828133" ComparisionPrice="5960" ComparisionPriceWithMeal="5960" Has3D="false" SortingRate="0" State="1" Timestamp="636364920123841707" AccessKey="146f5332-4138-4811-b015-8efbef4df202" HasAirportTransfer="true" HasFitness="false" HasInternet="true" HasParking="true" HasSpa="false" HasPool="false">
<HotelName>
<BS Rus="Аквариум Отель" En="Aquarium Hotel"/>
</HotelName>
<HotelType>Hotel</HotelType>
<Phone/>
<ThumbnailUrl>http://images.acase.ru/hotels_images/800300_00.jpg</ThumbnailUrl>
<Address>
<BS Rus="Международная улица, 20" En="20 Mezhdunarodnaya street"/>
</Address>
<CurrencyExchangeRate>1</CurrencyExchangeRate>
<CurrencyCode>RUB</CurrencyCode>
<MealCurrencyCode>RUB</MealCurrencyCode>
<MealCurrencyExchangeRate>1</MealCurrencyExchangeRate>
<TripAdvisorRate ServicesRate="0" PriceRate="0" CleannessRate="0" ComfortRate="0" LocationRate="0" PersonnelRate="0" FeedbackQuantity="0"/>
<Accessors>
<Accessor id_System="3" id_City="6297" HotelName="Аквариум Отель" id_ProviderGroup="3000" id_Profile="5388">
<HotelCode>800300</HotelCode>
<Adults>1</Adults>
<ChildAges/>
<Checkin>2017-07-29</Checkin>
<Checkout>2017-07-31</Checkout>
<CurrentPaymentType>0</CurrentPaymentType>
<Details City="2"/>
</Accessor>
</Accessors>
</HotelTreeItem>
...
</Items>
</HotelTree>
</HotelTreeResponse>
</EngineResponse>
<Errors/>
<Warnings/>
</Response>
Структура ответа
Дерево отелей (см. HotelTreeResults)
Дерево отелей — ответ сервиса HotelTreeResults - контейнер, содержащий в себе несколько отелей, имеющих следующие характеристики:
Каждое дерево отелей характеризуется уникальным кодом - TreeID, которое назначается при вызове метода HotelTreeInitialize и в дальнейшем используется при переопросе сервиса для получения новых вариантов размещения.
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
DateTime | Attribute | Date | дата и время выдачи дерева | всегда | 2017-07-24T11:19:19.8953478+03:00 |
uint | Attribute | TreeID | уникальный идентификатор дерева | всегда | 6f548caf9441b06b84db868e44a41cd1 |
States | Element | States / Status | состояния поиска в конкретном поставщике | всегда | - |
Items | Element | Items / HotelTreeItem | информация об одном отеле | всегда | - |
States / Status
States — состояния поиска в конкретном поставщике.
Status — текущий статус в конкретном поставщике.
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
int | Attribute | id_System | идентификатор поставщика | всегда | 3 |
string | Attribute | MethodName | имя исполняемого в движке метода | всегда | HotelTreeInitMethodAcase |
bool | Attribute | IsFinished | закончен ли поиск в данном поставщике | всегда | true |
string | Attribute | StatusDescription | описание статуса | всегда | Поиск в системе Academservice завершен успешно |
DateTime | Attribute | DateChanged | последняя дата и время изменения состояния | всегда | 2017-07-24T11:20:12.536144+03:00 |
Items / HotelTreeItem
HotelTreeItem — информация об одном отеле
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
int | Attribute | Stars | количество звезд | всегда | 3 |
double | Attribute | Longitude | географическая долгота, координаты местоположения отеля | всегда | 37.389736 |
double | Attribute | Latitude | географическая широта, координаты местоположения отеля | всегда | 55.828133 |
double | Attribute | ComparisionPrice | наименьшая цена за указанный период | всегда | 5960 |
double | Attribute | ComparisionPriceWithMeal | наименьшая цена с питанием за указанный период | всегда | 5960 |
bool | Attribute | Has3D | имеется ли трехстронний договор с данным поставщиком (true/false) | всегда | false |
int | Attribute | SortingRate | приоритет данного поставщика в системе Кортеос | всегда | 0 |
int | Attribute | State | статус элемента дерева (1 - свежесозданный, 2 - обновлённый) | всегда | 1 |
uint | Attribute | Timestamp | таймстемп выдачи данных | всегда | 636364920123841707 |
bool | Attribute | HasAirportTransfer | имеется ли услуга трансфера из аэропорта/в аэропорт (true/false) | всегда | true |
bool | Attribute | HasFitness | имеется финтес зал (true/false) | всегда | false |
bool | Attribute | HasInternet | имеется интернет (true/false) | всегда | true |
bool | Attribute | HasParking | имеется парковка (true/false) | всегда | true |
bool | Attribute | HasSpa | имеется спа (true/false) | всегда | false |
bool | Attribute | HasPool | имеется бассейн (true/false) | всегда | false |
HotelName | Element | HotelName | название отеля на русском и английском | всегда | - |
string | Element | HotelType | тип отеля - отель, хостел и т.п. | всегда | Hotel |
string | Element | Phone | телефон отеля | всегда | |
string | Element | ThumbnailUrl | небольшая картинка, логотип отеля< | всегда | http://images.acase.ru/hotels_images/800300_00.jpg |
Address | Element | Address | адрес отеля на русском и английском | всегда | |
double | Element | CurrencyExchangeRate | курс обмена валют | всегда | 1 |
string | Element | CurrencyCode | код валюты | всегда | RUB |
string | Element | MealCurrencyCode | код валюты (питание) | всегда | RUB |
double | Element | MealCurrencyExchangeRate | курс обмена валют (за питание) | всегда | 1 |
TripAdvisorRate | Element | TripAdvisorRate | рейтинг отеля в сервисе TripAdvisor | всегда | |
Accessors | Element | Accessors | аксессор | всегда | |
double | Element | VAT | информация об НДС при оплате, если НДС не включен или неизвестен, то 0 | всегда | 1034.98 |
double | Element | VATDouble | численное значение НДС при оплате. Если НДС включен, но значение неизвестно, то значение -1 | всегда, если НДС включен | 1034.98 |
string | Element | PriceChangeLog | история изменения цены при применении сборов | всегда, если применяются сборы | |
double | Element | CommissionDouble | численное значение комиссии агентства | всегда, если комиссия есть | 0 |
Примеры ошибок
Системная ошибка
Выдается в случае неверного набора входных параметров, например, пропущен какой-то обязательный параметр или передан неверный тип данных
<?xml version="1.0" encoding="utf-8" ?>
<Error>
<Message>The request is invalid.</Message>
<MessageDetail>
The parameters dictionary contains a null entry for parameter 'id_Profile' of non-nullable type 'System.Int32' for method 'System.Net.Http.HttpResponseerrorText HotelTreeResults(System.String, Int32, System.String, Int64, Boolean)' in 'HotelEngineAPI.Controllers.HotelSearchController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.
</errorTextDetail>
</Error>
Логическая ошибка
Возникает в том случае, если переданы неверные данные, например, передан неверный идентификатор финансового профиля.
<?xml version="1.0" encoding="utf-8" ?>
<Error>
<Message>An error has occurred.</Message>
<ExceptionMessage>Передан некорректный идентификатор профайла</ExceptionerrorText>
<ExceptionType>
HotelEngineAPI.Controllers.Exceptions.SecurityException
</ExceptionType>
</Error>
Ошибка уровня движка
Возникает в том случае, если при исполнении входного запроса на уровне движка произошла какая-то ошибка
<?xml version="1.0" encoding="utf-8" ?>
<Response HasErrors="true" HasWarnings="false">
<EngineResponse>
<HotelTreeResponse>
<Errors>
<Error>Служба поиска гостиниц временно недоступна, попробуйте повторить свой запрос позже.</Error>
</Errors>
</HotelTreeResponse>
</EngineResponse>
<Warnings />
</Response>
Тестовая форма
Заполните недостающие данные в тестовой форме и нажмите кнопку "отправить" для проверки работы запроса.