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

Материал из TourClient - Руководство пользователя
Перейти к: навигация, поиск
(Новая страница: «Работа с сервисом осуществляется путем отправки POST запросов на адрес http://tourclient.ru/f/exml/user_i…»)
 
(Фильтры)
 
(не показаны 15 промежуточные версии 1 участника)
Строка 10: Строка 10:
 
== Тестовый интерфейс ==
 
== Тестовый интерфейс ==
  
http://tourclient.ru.db0.ru/xml_test.php
+
http://tourclient.ru/xml_test.php
 
+
http://joxi.net/Vm6QkZ6Ux9GRer
+
 
+
  
 +
<!--
 
Запросы фильтров можно посмотреть через трейс
 
Запросы фильтров можно посмотреть через трейс
 
 
http://joxi.net/v29W73LIGn8GVr
 
http://joxi.net/v29W73LIGn8GVr
 
+
-->
  
 
== Фильтры ==
 
== Фильтры ==
 +
 +
<!--
 +
RequestFilters
 +
возможные зависимости
 +
allocationIds, mealIds, roomViewTypeIds, roomApartTypeIds
 +
-->
  
 
<source lang="php">
 
<source lang="php">
  
Условно поделены на группы
+
Запрос 1. RequestCity
  
Группа 1. p_get_filter14_3ch
+
'City' - не требует обязательных параметров
могут зависеть от cityId, countryId, resortIds, resortPlaceIds, roomSizeId, allocationIds, mealIds, roomViewTypeIds, roomApartTypeIds, allocCatIds, allocRate
+
  
'City' => 'city',
 
'Country' => 'country',
 
'Resort' => 'resort',
 
'ResortPlace' => 'resortPlace',
 
'AllocCat' => 'allocCat',
 
'Meal' => 'meal',
 
'RoomSize' => 'roomSize',
 
'RoomApartType' => 'roomApartType',
 
'RoomViewType' => 'roomViewType',
 
  
 +
Запрос 2. RequestCountry
  
Группа 2. p_get_filter_allocations5
+
'Country' - обязательный параметр cityId
могут зависеть от cityId, countryId, resortIds, resortPlaceIds, allocCatIds, allocationTypeId, allocPlaceTypeId, allocPlaceValueIds
+
  
'Allocation' => 'allocation',
 
'AllocationType' => 'allocationType',
 
'AllocPlaceType' => 'allocPlaceType',
 
'AllocPlaceValue' => 'allocPlaceValue',
 
  
 +
Запрос 3. RequestFilters
  
Группа 3. Статика
+
Следующие фильтры могут зависеть от resortIds, resortPlaceIds, allocCatIds
\TC\Model\FilterService\StaticStorage
+
Обязательные параметры cityId, countryId
ни от чего не зависят
+
'Resort'
 +
'ResortPlace'
 +
'AllocCat'
 +
'Meal'
 +
'RoomSize'
 +
'RoomApartType'
 +
'RoomViewType'
  
'DurationFrom' => 'durationf',
 
'DurationTo' => 'durationt',
 
'Ticket' => 'ticket',
 
'Rate' => 'rate',
 
'Adults' => 'adults',
 
'Children' => 'children',
 
  
 +
Запрос 4. RequestAllocation
  
Группа 4. Другие (тоже статика)
+
Следующие фильтры могут зависеть от resortIds, resortPlaceIds, allocCatIds, allocationTypeId, allocPlaceTypeId, allocPlaceValueIds
 
+
Обязательные параметры cityId, countryId
'PriceFrom' => 'pricef',
+
'Allocation'
'PriceTo' => 'pricet',
+
'AllocationType'
 +
'AllocPlaceType'
 +
'AllocPlaceValue'
  
 
</source>
 
</source>
 
  
 
== Пример запроса к сервису ==
 
== Пример запроса к сервису ==
Строка 74: Строка 66:
  
 
<?xml version="1.0" encoding="UTF-8"?>
 
<?xml version="1.0" encoding="UTF-8"?>
<Request>
+
 
 +
<!-- название запроса -->
 +
<RequestAllocation>
 +
 
 +
    <!-- параметры -->
 
     <cityId>1000</cityId>
 
     <cityId>1000</cityId>
 
     <countryId>30</countryId>
 
     <countryId>30</countryId>
Строка 80: Строка 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>
Строка 99: Строка 97:
 
     <Success code="200">
 
     <Success code="200">
 
          
 
          
        <!-- p_get_filter14_3ch -->
+
 
  
 
         <Cities>
 
         <Cities>
Строка 107: Строка 105:
 
             </City>
 
             </City>
 
         </Cities>
 
         </Cities>
 +
 +
  
 
         <Countries>
 
         <Countries>
Строка 114: Строка 114:
 
             </Country>
 
             </Country>
 
         </Countries>
 
         </Countries>
 +
 +
  
 
         <Resorts>
 
         <Resorts>
Строка 165: Строка 167:
  
  
        <!-- p_get_filter_allocations5 -->
+
 
  
 
         <Allocations>
 
         <Allocations>
Строка 195: Строка 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>
Строка 270: Строка 219:
  
 
<?xml version="1.0" encoding="UTF-8"?>
 
<?xml version="1.0" encoding="UTF-8"?>
<Request>
+
<RequestXXX>
  
 
     <cityId>1469</cityId>
 
     <cityId>1469</cityId>
Строка 285: Строка 234:
 
         <id>251</id>
 
         <id>251</id>
 
     </resortPlaceIds>
 
     </resortPlaceIds>
 
    <roomSizeId>20</roomSizeId>  <!-- Если не передавать, то будет 14 в p_get_filter14_3ch -->
 
  
 
     <allocationIds>
 
     <allocationIds>
Строка 312: Строка 259:
 
         <id>7</id>
 
         <id>7</id>
 
     </allocCatIds>
 
     </allocCatIds>
 
    <allocRate>2</allocRate>
 
  
 
     <allocationTypeId>41</allocationTypeId>
 
     <allocationTypeId>41</allocationTypeId>
Строка 324: Строка 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>