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

Материал из TourClient - Руководство пользователя
Перейти к: навигация, поиск
(Тестовый интерфейс)
(Фильтры)
 
(не показаны 11 промежуточные версии 1 участника)
Строка 10: Строка 10:
 
== Тестовый интерфейс ==
 
== Тестовый интерфейс ==
  
http://tourclient.ru.db0.ru/xml_test.php
+
http://tourclient.ru/xml_test.php
  
http://joxi.net/Vm6QkZ6Ux9GRer
+
<!--
 
+
 
+
<span style="color:red;">Убрать инфу про трейс от пользователя</span><br/>
+
 
Запросы фильтров можно посмотреть через трейс
 
Запросы фильтров можно посмотреть через трейс
 
 
http://joxi.net/v29W73LIGn8GVr
 
http://joxi.net/v29W73LIGn8GVr
 +
-->
  
 
== Фильтры ==
 
== Фильтры ==
 +
 +
<!--
 +
RequestFilters
 +
возможные зависимости
 +
allocationIds, mealIds, roomViewTypeIds, roomApartTypeIds
 +
-->
  
 
<source lang="php">
 
<source lang="php">
 +
 +
Запрос 1. RequestCity
  
 
'City' - не требует обязательных параметров
 
'City' - не требует обязательных параметров
  
'Country' - обязательный параметр countryId
 
  
Следующие фильтры могут зависеть от resortIds, resortPlaceIds, allocationIds, mealIds, roomViewTypeIds, roomApartTypeIds, allocCatIds
+
Запрос 2. RequestCountry
 +
 
 +
'Country' - обязательный параметр cityId
 +
 
 +
 
 +
Запрос 3. RequestFilters
 +
 
 +
Следующие фильтры могут зависеть от resortIds, resortPlaceIds, allocCatIds
 
Обязательные параметры cityId, countryId
 
Обязательные параметры cityId, countryId
 
'Resort'
 
'Resort'
Строка 37: Строка 48:
 
'RoomApartType'
 
'RoomApartType'
 
'RoomViewType'
 
'RoomViewType'
 +
 +
 +
Запрос 4. RequestAllocation
  
 
Следующие фильтры могут зависеть от resortIds, resortPlaceIds, allocCatIds, allocationTypeId, allocPlaceTypeId, allocPlaceValueIds
 
Следующие фильтры могут зависеть от resortIds, resortPlaceIds, allocCatIds, allocationTypeId, allocPlaceTypeId, allocPlaceValueIds
Строка 52: Строка 66:
  
 
<?xml version="1.0" encoding="UTF-8"?>
 
<?xml version="1.0" encoding="UTF-8"?>
<Request>
+
 
 +
<!-- название запроса -->
 +
<RequestAllocation>
  
 
     <!-- параметры -->
 
     <!-- параметры -->
Строка 60: Строка 76:
 
         <id>2402</id>
 
         <id>2402</id>
 
     </resortIds>
 
     </resortIds>
 
+
   
 
     <!-- фильтры-->
 
     <!-- фильтры-->
 
     <entities>
 
     <entities>
        <entity>ResortPlace</entity>
 
 
         <entity>Allocation</entity>
 
         <entity>Allocation</entity>
 
     </entities>
 
     </entities>
 
+
   
</Request>
+
</RequestAllocation>
  
 
</source>
 
</source>
Строка 82: Строка 97:
 
     <Success code="200">
 
     <Success code="200">
 
          
 
          
        <!-- p_get_filter14_3ch -->
+
 
  
 
         <Cities>
 
         <Cities>
Строка 90: Строка 105:
 
             </City>
 
             </City>
 
         </Cities>
 
         </Cities>
 +
 +
  
 
         <Countries>
 
         <Countries>
Строка 97: Строка 114:
 
             </Country>
 
             </Country>
 
         </Countries>
 
         </Countries>
 +
 +
  
 
         <Resorts>
 
         <Resorts>
Строка 148: Строка 167:
  
  
        <!-- p_get_filter_allocations5 -->
+
 
  
 
         <Allocations>
 
         <Allocations>
Строка 178: Строка 197:
 
             </AllocPlaceValue>
 
             </AllocPlaceValue>
 
         </AllocPlaceValues>
 
         </AllocPlaceValues>
 
 
        <!-- Статика -->
 
 
        <DurationFrom>
 
            <DurationFromValue>
 
                <id>1</id>
 
                <name>1</name>
 
            </DurationFromValue>
 
        </DurationFrom>
 
 
        <DurationTo>
 
            <DurationToValue>
 
                <id>1</id>
 
                <name>1</name>
 
            </DurationToValue>
 
        </DurationTo>
 
 
        <Tickets>
 
            <Ticket>
 
                <id>0</id>
 
                <name>Не важно</name>
 
            </Ticket>
 
        </Tickets>
 
 
        <Rates>
 
            <Rate>
 
                <id>0</id>
 
                <name>Не важно</name>
 
            </Rate>
 
        </Rates>
 
 
        <Adults>
 
            <AdultsValue>
 
                <id>1</id>
 
                <name>1</name>
 
            </AdultsValue>
 
        </Adults>
 
 
        <Children>
 
            <ChildrenValue>
 
                <id>0</id>
 
                <name>0</name>
 
            </ChildrenValue>
 
        </Children>
 
 
 
 
        <!-- Другие -->
 
 
        <PriceFrom/>
 
 
        <PriceTo/>
 
  
 
     </Success>
 
     </Success>
Строка 253: Строка 219:
  
 
<?xml version="1.0" encoding="UTF-8"?>
 
<?xml version="1.0" encoding="UTF-8"?>
<Request>
+
<RequestXXX>
  
 
     <cityId>1469</cityId>
 
     <cityId>1469</cityId>
Строка 268: Строка 234:
 
         <id>251</id>
 
         <id>251</id>
 
     </resortPlaceIds>
 
     </resortPlaceIds>
 
    <roomSizeId>20</roomSizeId>  <!-- Если не передавать, то будет 14 в p_get_filter14_3ch -->
 
  
 
     <allocationIds>
 
     <allocationIds>
Строка 295: Строка 259:
 
         <id>7</id>
 
         <id>7</id>
 
     </allocCatIds>
 
     </allocCatIds>
 
    <allocRate>2</allocRate>
 
  
 
     <allocationTypeId>41</allocationTypeId>
 
     <allocationTypeId>41</allocationTypeId>
Строка 307: Строка 269:
 
     </allocPlaceValueIds>
 
     </allocPlaceValueIds>
  
</Request>
+
</RequestXXX>
  
 
</source>
 
</source>

Текущая версия на 17:12, 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>