Спецификация метода HotelTreeResults

Пример вызова


Протокол: HTTP POST
Адресная строка: api/HotelTreeResults/Execute


Метод апи: Execute
Аналогичен одноименному методу с передаваемым запросом в виде единого XML

Информация о запросе

Ниже приведены параметры запроса и их краткое описание

Параметры запроса

Название параметраОписаниеТИП
req Объект HotelTreeResultsRequest с параметрами запроса поиска отелей по идентификатору дерева

GET.


Описание работы сервиса

Диаграмма бизнес-процесса

Сервис HotelTreeResults является вторым шагом бизнес-процесса поиска гостиниц, возвращает отстроенное на данный момент времени дерево.

Пример для отправки запроса в теле сообщения

<?xml version="1.0" encoding="utf-8" ?>
<HotelTreeResultsRequest SecurityKey="XXX" id_Profile="XXX" IsTest="false"  DateRequestStarted="0001-01-01T00:00:00">
  <IsTest>false</IsTest>
  <SystemInformation />
  <TreeID>0bbeb3f50799def7ffc9cf3ddc067bd0</TreeID>
  <Timestamp>0</Timestamp>
</HotelTreeResultsRequest>

Пример успешного ответа

<?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>