XML - связи фильтров/Экспорт связей фильтров формы поиска 2
Материал из TourClient - Руководство пользователя
Версия от 11:39, 26 мая 2016; Levenets (обсуждение | вклад)
Работа с сервисом осуществляется путем отправки 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
Фильтры
Условно поделены на группы Группа 1. p_get_filter14_3ch могут зависеть от 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. p_get_filter_allocations5 могут зависеть от cityId, countryId, resortIds, resortPlaceIds, allocCatIds, allocationTypeId, allocPlaceTypeId, allocPlaceValueIds 'Allocation' => 'allocation', 'AllocationType' => 'allocationType', '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',
Пример запроса к сервису
<?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>