XML - связи фильтров/Экспорт связей фильтров формы поиска — различия между версиями

Материал из TourClient - Руководство пользователя
Перейти к: навигация, поиск
 
(не показаны 2 промежуточных версий 1 участника)
Строка 7: Строка 7:
 
В результате сервис вернет ответ в формате xml.
 
В результате сервис вернет ответ в формате xml.
  
=== Запрос к сервису ===  
+
 
 +
== Тестовый интерфейс ==
 +
 
 +
http://tourclient.ru/xml_test.php
 +
 
 +
<!--
 +
Запросы фильтров можно посмотреть через трейс
 +
http://joxi.net/v29W73LIGn8GVr
 +
-->
 +
 
 +
== Фильтры ==
 +
 
 +
<!--
 +
RequestFilters
 +
возможные зависимости
 +
allocationIds, mealIds, roomViewTypeIds, roomApartTypeIds
 +
-->
 +
 
 +
<source lang="php">
 +
 
 +
Запрос 1. RequestCity
 +
 
 +
'City' - не требует обязательных параметров
 +
 
 +
 
 +
Запрос 2. RequestCountry
 +
 
 +
'Country' - обязательный параметр cityId
 +
 
 +
 
 +
Запрос 3. RequestFilters
 +
 
 +
Следующие фильтры могут зависеть от resortIds, resortPlaceIds, allocCatIds
 +
Обязательные параметры cityId, countryId
 +
'Resort'
 +
'ResortPlace'
 +
'AllocCat'
 +
'Meal'
 +
'RoomSize'
 +
'RoomApartType'
 +
'RoomViewType'
 +
 
 +
 
 +
Запрос 4. RequestAllocation
 +
 
 +
Следующие фильтры могут зависеть от resortIds, resortPlaceIds, allocCatIds, allocationTypeId, allocPlaceTypeId, allocPlaceValueIds
 +
Обязательные параметры cityId, countryId
 +
'Allocation'
 +
'AllocationType'
 +
'AllocPlaceType'
 +
'AllocPlaceValue'
 +
 
 +
</source>
 +
 
 +
== Пример запроса к сервису ==
  
 
<source lang="xml">
 
<source lang="xml">
  
 
<?xml version="1.0" encoding="UTF-8"?>
 
<?xml version="1.0" encoding="UTF-8"?>
<Request>
+
 
 +
<!-- название запроса -->
 +
<RequestAllocation>
 +
 
 +
    <!-- параметры -->
 
     <cityId>1000</cityId>
 
     <cityId>1000</cityId>
     <countryId>12</countryId>
+
     <countryId>30</countryId>
    <durationFrom>7</durationFrom> <!-- Продолжительность (количество ночей в отеле). ОТ. -->
+
     <resortIds>
    <durationTill>14</durationTill> <!-- Продолжительность (количество ночей в отеле). ДО. -->
+
         <id>2402</id>
    <departure>2015-01-25</departure>
+
    <arrival>2015-02-02</arrival>
+
    <ticket>(0|-1|-2|1|2)</ticket><!-- (0 Не важно,-1 с билетом, -2 без билета, 1 авиа, 2 поезд, 3 автобус) -->
+
    <adults>2</adults>
+
    <children>0</children>
+
    <childAge1>0</childAge1>
+
    <childAge2>0</childAge2>
+
     <resortIds><!-- Массив идентификаторов курортов. -->
+
        <id>111</id>
+
        <id>222</id>
+
         <id>333</id>
+
 
     </resortIds>
 
     </resortIds>
     <allocCatIds> <!-- Идентификатор категории отеля. -->
+
      
        <id>7</id>
+
     <!-- фильтры-->
        <id>8</id>
+
        <id>9</id>
+
     </allocCatIds>
+
    <allocRate>3.56</allocRate>  <!-- Рейтинг отеля (не менее заданного) -->
+
    <allocationIds><!-- Массив идентификаторов отелей. -->
+
        <id>111</id>
+
        <id>222</id>
+
        <id>333</id>
+
    </allocationIds>
+
    <mealIds> <!-- Массив идентификаторов питаний. -->
+
        <id>111</id>
+
        <id>222</id>
+
        <id>333</id>
+
    </mealIds>
+
    <allocPlaceTypeId>1</allocPlaceTypeId>
+
    <allocPlaceValueIds>
+
        <id>1</id>
+
        <id>3</id><!-- Значение расположения отеля(1-я линия - 1, 2-я линия - 3, 3-я линия - 4 и пр..). -->
+
        <id>4</id>
+
    </allocPlaceValueIds>
+
 
     <entities>
 
     <entities>
        <entity>City</entity>
 
        <entity>Country</entity>
 
        <entity>Resort</entity>
 
        <entity>ResortPlace</entity>
 
 
         <entity>Allocation</entity>
 
         <entity>Allocation</entity>
        <entity>AllocCat</entity>
 
        <entity>AllocationType</entity>
 
        <entity>AllocPlaceType</entity>
 
        <entity>AllocPlaceValue</entity>
 
        <entity>Meal</entity>
 
 
     </entities>
 
     </entities>
</Request>
+
   
 +
</RequestAllocation>
  
 
</source>
 
</source>
Строка 69: Строка 88:
 
<br>
 
<br>
  
=== Ответ сервиса ===
+
== Ответ сервиса ==
 
Сервис возвращает ответ, содержащий массив запрошенных объектов
 
Сервис возвращает ответ, содержащий массив запрошенных объектов
  
Строка 77: Строка 96:
 
<Result>
 
<Result>
 
     <Success code="200">
 
     <Success code="200">
         <Countries>
+
          
            <Country>
+
 
                <id>12</id>
+
 
                <name>Египет</name>
+
            </Country>
+
            ...
+
        <Countries>
+
 
         <Cities>
 
         <Cities>
 
             <City>
 
             <City>
                 <id>1000</id>
+
                 <id>1469</id>
                 <name>Москва</name>
+
                 <name>Абакан</name>
 
             </City>
 
             </City>
            ...
 
 
         </Cities>
 
         </Cities>
 +
 +
 +
 +
        <Countries>
 +
            <Country>
 +
                <id>124</id>
 +
                <name>Абхазия</name>
 +
            </Country>
 +
        </Countries>
 +
 +
 +
 
         <Resorts>
 
         <Resorts>
            <Resort>
+
            <Resort>
                 <id>2473</id>
+
                 <id>4740</id>
                 <name>Таба</name>
+
                 <name>Hail Al Shas</name>
 
                 <ResortPlaces>
 
                 <ResortPlaces>
 
                     <ResortPlace>
 
                     <ResortPlace>
                         <id>85</id>
+
                         <id>3962</id>
                         <name>Таба Хейтс</name>
+
                         <name> Альмирида</name>
 
                     </ResortPlace>
 
                     </ResortPlace>
                    ...
 
 
                 </ResortPlaces>
 
                 </ResortPlaces>
 
             </Resort>
 
             </Resort>
            ...
 
 
         </Resorts>
 
         </Resorts>
 +
 +
        <AllocCats>
 +
            <AllocCat>
 +
                <id>6</id>
 +
                <name>1*</name>
 +
            </AllocCat>
 +
        </AllocCats>
 +
 +
        <Meals>
 +
            <Meal>
 +
                <id>1</id>
 +
                <name>(AI) питание+напитки местного производства</name>
 +
            </Meal>
 +
        </Meals>
 +
 +
        <RoomSizes>
 +
            <RoomSize>
 +
                <id>15</id>
 +
                <name>1 взрослый</name>
 +
                <code>SGL</code>
 +
            </RoomSize>
 +
        </RoomSizes>
 +
 +
        <RoomApartTypes>
 +
            <RoomApartType>
 +
                <id>3</id>
 +
                <name>Apartment</name>
 +
            </RoomApartType>
 +
        </RoomApartTypes>
 +
 +
        <RoomViewTypes>
 +
            <RoomViewType>
 +
                <id>41</id>
 +
                <name>Без определенного вида</name>
 +
            </RoomViewType>
 +
        </RoomViewTypes>
 +
 +
 +
 +
 
         <Allocations>
 
         <Allocations>
 
             <Allocation>
 
             <Allocation>
                 <id>20090</id>
+
                 <id>187105</id>
                 <name>Club Marmara</name>
+
                 <name>101 Holiday Suite</name>
 
                 <category>4*</category>
 
                 <category>4*</category>
 
             </Allocation>
 
             </Allocation>
            ...
 
 
         </Allocations>
 
         </Allocations>
        <AllocCats>
+
 
            <AllocCat>
+
                <id>9</id>
+
                <name>4*</name>
+
            </AllocCat>
+
            ...
+
        </AllocCats>
+
 
         <AllocationTypes>
 
         <AllocationTypes>
 
             <AllocationType>
 
             <AllocationType>
                 <id>61</id>
+
                 <id>41</id>
                 <name>Гостиничный комплекс</name>
+
                 <name>Hostel</name>
 
             </AllocationType>
 
             </AllocationType>
            ...
 
 
         </AllocationTypes>
 
         </AllocationTypes>
 +
 
         <AllocPlaceTypes>
 
         <AllocPlaceTypes>
 
             <AllocPlaceType>
 
             <AllocPlaceType>
                 <id>1</id>
+
                 <id>3</id>
                 <name>Пляжный</name>
+
                 <name>Горнолыжный</name>
 
             </AllocPlaceType>
 
             </AllocPlaceType>
            ...
 
 
         </AllocPlaceTypes>
 
         </AllocPlaceTypes>
 +
 
         <AllocPlaceValues>
 
         <AllocPlaceValues>
 
             <AllocPlaceValue>
 
             <AllocPlaceValue>
Строка 139: Строка 196:
 
                 <name>1-я линия</name>
 
                 <name>1-я линия</name>
 
             </AllocPlaceValue>
 
             </AllocPlaceValue>
            ...
 
 
         </AllocPlaceValues>
 
         </AllocPlaceValues>
        <Meals>
+
 
            <Meal>
+
                <id>1</id>
+
                <name>(AI) питание+напитки местного производства</name>
+
            </Meal>
+
            ...
+
        </Meals>
+
 
     </Success>
 
     </Success>
 
</Result>
 
</Result>
Строка 163: Строка 213:
 
</source>
 
</source>
 
Внимание! Атрибут с кодом ошибки может отсутствовать!
 
Внимание! Атрибут с кодом ошибки может отсутствовать!
 +
 +
== Параметры в запросе к сервису ==
 +
 +
<source lang="xml">
 +
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
<RequestXXX>
 +
 +
    <cityId>1469</cityId>
 +
 +
    <countryId>6</countryId>
 +
 +
    <resortIds>
 +
        <id>448</id>
 +
        <id>4009</id>
 +
    </resortIds>
 +
 +
    <resortPlaceIds>
 +
        <id>3962</id>
 +
        <id>251</id>
 +
    </resortPlaceIds>
 +
 +
    <allocationIds>
 +
        <id>83219</id>
 +
        <id>170937</id>
 +
    </allocationIds>
 +
 +
    <mealIds>
 +
        <id>1</id>
 +
        <id>2</id>
 +
    </mealIds>
 +
 +
    <roomViewTypeIds>
 +
        <id>41</id>
 +
        <id>22</id>
 +
    </roomViewTypeIds>
 +
 +
    <roomApartTypeIds>
 +
        <id>3</id>
 +
        <id>4</id>
 +
    </roomApartTypeIds>
 +
 +
    <allocCatIds>
 +
        <id>6</id>
 +
        <id>7</id>
 +
    </allocCatIds>
 +
 +
    <allocationTypeId>41</allocationTypeId>
 +
 +
    <allocPlaceTypeId>2</allocPlaceTypeId>
 +
 +
    <allocPlaceValueIds>
 +
        <id>1</id>
 +
        <id>3</id>
 +
    </allocPlaceValueIds>
 +
 +
</RequestXXX>
 +
 +
</source>

Текущая версия на 17:22, 14 июля 2016

Работа с сервисом осуществляется путем отправки POST запросов на адрес http://tourclient.ru/f/exml/user_id/filters_export .

Где user_id - ID пользователя AgentPassport.

POST-параметр request должен содержать xml запроса.

В результате сервис вернет ответ в формате xml.


Тестовый интерфейс

http://tourclient.ru/xml_test.php


Фильтры

Запрос 1. RequestCity
 
'City' - не требует обязательных параметров
 
 
Запрос 2. RequestCountry
 
'Country' - обязательный параметр cityId
 
 
Запрос 3. RequestFilters
 
Следующие фильтры могут зависеть от resortIds, resortPlaceIds, allocCatIds
Обязательные параметры cityId, countryId
'Resort'
'ResortPlace'
'AllocCat'
'Meal'
'RoomSize'
'RoomApartType'
'RoomViewType'
 
 
Запрос 4. RequestAllocation
 
Следующие фильтры могут зависеть от resortIds, resortPlaceIds, allocCatIds, allocationTypeId, allocPlaceTypeId, allocPlaceValueIds
Обязательные параметры cityId, countryId
'Allocation'
'AllocationType'
'AllocPlaceType'
'AllocPlaceValue'

Пример запроса к сервису

<?xml version="1.0" encoding="UTF-8"?>
 
<!-- название запроса -->
<RequestAllocation>
 
    <!-- параметры -->
    <cityId>1000</cityId>
    <countryId>30</countryId>
    <resortIds>
        <id>2402</id>
    </resortIds>
 
    <!-- фильтры-->
    <entities>
        <entity>Allocation</entity>
    </entities>
 
</RequestAllocation>


Ответ сервиса

Сервис возвращает ответ, содержащий массив запрошенных объектов

<?xml version="1.0" encoding="UTF-8"?>
<Result>
    <Success code="200">
 
 
 
        <Cities>
            <City>
                <id>1469</id>
                <name>Абакан</name>
            </City>
        </Cities>
 
 
 
        <Countries>
            <Country>
                <id>124</id>
                <name>Абхазия</name>
            </Country>
        </Countries>
 
 
 
        <Resorts>
            <Resort>
                <id>4740</id>
                <name>Hail Al Shas</name>
                <ResortPlaces>
                    <ResortPlace>
                        <id>3962</id>
                        <name> Альмирида</name>
                    </ResortPlace>
                </ResortPlaces>
            </Resort>
        </Resorts>
 
        <AllocCats>
            <AllocCat>
                <id>6</id>
                <name>1*</name>
            </AllocCat>
        </AllocCats>
 
        <Meals>
            <Meal>
                <id>1</id>
                <name>(AI) питание+напитки местного производства</name>
            </Meal>
        </Meals>
 
        <RoomSizes>
            <RoomSize>
                <id>15</id>
                <name>1 взрослый</name>
                <code>SGL</code>
            </RoomSize>
        </RoomSizes>
 
        <RoomApartTypes>
            <RoomApartType>
                <id>3</id>
                <name>Apartment</name>
            </RoomApartType>
        </RoomApartTypes>
 
        <RoomViewTypes>
            <RoomViewType>
                <id>41</id>
                <name>Без определенного вида</name>
            </RoomViewType>
        </RoomViewTypes>
 
 
 
 
        <Allocations>
            <Allocation>
                <id>187105</id>
                <name>101 Holiday Suite</name>
                <category>4*</category>
            </Allocation>
        </Allocations>
 
        <AllocationTypes>
            <AllocationType>
                <id>41</id>
                <name>Hostel</name>
            </AllocationType>
        </AllocationTypes>
 
        <AllocPlaceTypes>
            <AllocPlaceType>
                <id>3</id>
                <name>Горнолыжный</name>
            </AllocPlaceType>
        </AllocPlaceTypes>
 
        <AllocPlaceValues>
            <AllocPlaceValue>
                <id>1</id>
                <name>1-я линия</name>
            </AllocPlaceValue>
        </AllocPlaceValues>
 
    </Success>
</Result>


В случае ошибки сервис вернет:

<?xml version="1.0" encoding="UTF-8"?>
<Result>
    <Error code="код ошибки">Текст ошибки</Error>
</Result>

Внимание! Атрибут с кодом ошибки может отсутствовать!

Параметры в запросе к сервису

<?xml version="1.0" encoding="UTF-8"?>
<RequestXXX>
 
    <cityId>1469</cityId>
 
    <countryId>6</countryId>
 
    <resortIds>
        <id>448</id>
        <id>4009</id>
    </resortIds>
 
    <resortPlaceIds>
        <id>3962</id>
        <id>251</id>
    </resortPlaceIds>
 
    <allocationIds>
        <id>83219</id>
        <id>170937</id>
    </allocationIds>
 
    <mealIds>
        <id>1</id>
        <id>2</id>
    </mealIds>
 
    <roomViewTypeIds>
        <id>41</id>
        <id>22</id>
    </roomViewTypeIds>
 
    <roomApartTypeIds>
        <id>3</id>
        <id>4</id>
    </roomApartTypeIds>
 
    <allocCatIds>
        <id>6</id>
        <id>7</id>
    </allocCatIds>
 
    <allocationTypeId>41</allocationTypeId>
 
    <allocPlaceTypeId>2</allocPlaceTypeId>
 
    <allocPlaceValueIds>
        <id>1</id>
        <id>3</id>
    </allocPlaceValueIds>
 
</RequestXXX>