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

Материал из TourClient - Руководство пользователя
Перейти к: навигация, поиск
(Тестовый интерфейс)
(Фильтры)
Строка 24: Строка 24:
 
<source lang="php">
 
<source lang="php">
  
Условно поделены на группы
+
'City' - не требует обязательных параметров
  
Группа 1. p_get_filter14_3ch
+
'Country' - обязательный параметр countryId
могут зависеть от cityId, countryId, resortIds, resortPlaceIds, roomSizeId, allocationIds, mealIds, roomViewTypeIds, roomApartTypeIds, allocCatIds, allocRate
+
  
'City' => 'city',
+
Следующие фильтры могут зависеть от resortIds, resortPlaceIds, allocationIds, mealIds, roomViewTypeIds, roomApartTypeIds, allocCatIds
'Country' => 'country',
+
Обязательные параметры cityId, countryId
'Resort' => 'resort',
+
'Resort'
'ResortPlace' => 'resortPlace',
+
'ResortPlace'
'AllocCat' => 'allocCat',
+
'AllocCat'
'Meal' => 'meal',
+
'Meal'
'RoomSize' => 'roomSize',
+
'RoomSize'
'RoomApartType' => 'roomApartType',
+
'RoomApartType'
'RoomViewType' => 'roomViewType',
+
'RoomViewType'
  
 
+
Следующие фильтры могут зависеть от resortIds, resortPlaceIds, allocCatIds, allocationTypeId, allocPlaceTypeId, allocPlaceValueIds
Группа 2. p_get_filter_allocations5
+
Обязательные параметры cityId, countryId
могут зависеть от cityId, countryId, resortIds, resortPlaceIds, allocCatIds, allocationTypeId, allocPlaceTypeId, allocPlaceValueIds
+
'Allocation'
 
+
'AllocationType'
'Allocation' => 'allocation',
+
'AllocPlaceType'
'AllocationType' => 'allocationType',
+
'AllocPlaceValue'
'AllocPlaceType' => 'allocPlaceType',
+
'AllocPlaceValue' => 'allocPlaceValue',
+
 
+
 
+
Группа 3. Статика
+
\TC\Model\FilterService\StaticStorage
+
ни от чего не зависят
+
 
+
'DurationFrom' => 'durationf',
+
'DurationTo' => 'durationt',
+
'Ticket' => 'ticket',
+
'Rate' => 'rate',
+
'Adults' => 'adults',
+
'Children' => 'children',
+
 
+
 
+
Группа 4. Другие (тоже статика)
+
 
+
'PriceFrom' => 'pricef',
+
'PriceTo' => 'pricet',
+
  
 
</source>
 
</source>
 
  
 
== Пример запроса к сервису ==
 
== Пример запроса к сервису ==

Версия 10:55, 2 июня 2016

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

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

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

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


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

http://tourclient.ru.db0.ru/xml_test.php

http://joxi.net/Vm6QkZ6Ux9GRer


Убрать инфу про трейс
Запросы фильтров можно посмотреть через трейс

http://joxi.net/v29W73LIGn8GVr

Фильтры

'City' - не требует обязательных параметров
 
'Country' - обязательный параметр countryId
 
Следующие фильтры могут зависеть от resortIds, resortPlaceIds, allocationIds, mealIds, roomViewTypeIds, roomApartTypeIds, allocCatIds
Обязательные параметры cityId, countryId
'Resort'
'ResortPlace'
'AllocCat'
'Meal'
'RoomSize'
'RoomApartType'
'RoomViewType'
 
Следующие фильтры могут зависеть от resortIds, resortPlaceIds, allocCatIds, allocationTypeId, allocPlaceTypeId, allocPlaceValueIds
Обязательные параметры cityId, countryId
'Allocation'
'AllocationType'
'AllocPlaceType'
'AllocPlaceValue'

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

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


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

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

<?xml version="1.0" encoding="UTF-8"?>
<Result>
    <Success code="200">
 
        <!-- p_get_filter14_3ch -->
 
        <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>
 
 
        <!-- p_get_filter_allocations5 -->
 
        <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>
 
 
        <!-- Статика -->
 
        <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>
</Result>


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

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

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

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

<?xml version="1.0" encoding="UTF-8"?>
<Request>
 
    <cityId>1469</cityId>
 
    <countryId>6</countryId>
 
    <resortIds>
        <id>448</id>
        <id>4009</id>
    </resortIds>
 
    <resortPlaceIds>
        <id>3962</id>
        <id>251</id>
    </resortPlaceIds>
 
    <roomSizeId>20</roomSizeId>  <!-- Если не передавать, то будет 14 в p_get_filter14_3ch -->
 
    <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>
 
    <allocRate>2</allocRate>
 
    <allocationTypeId>41</allocationTypeId>
 
    <allocPlaceTypeId>2</allocPlaceTypeId>
 
    <allocPlaceValueIds>
        <id>1</id>
        <id>3</id>
    </allocPlaceValueIds>
 
</Request>