XML - связи фильтров/Экспорт связей фильтров формы поиска — различия между версиями
Материал из TourClient - Руководство пользователя
(→Запрос к сервису) |
Levenets (обсуждение | вклад) |
||
(не показаны 4 промежуточных версий 2 участников) | |||
Строка 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"?> | ||
− | < | + | |
+ | <!-- название запроса --> | ||
+ | <RequestAllocation> | ||
+ | |||
+ | <!-- параметры --> | ||
<cityId>1000</cityId> | <cityId>1000</cityId> | ||
− | <countryId> | + | <countryId>30</countryId> |
− | + | <resortIds> | |
− | + | <id>2402</id> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | <resortIds | + | |
− | + | ||
− | + | ||
− | <id> | + | |
</resortIds> | </resortIds> | ||
− | + | ||
− | + | <!-- фильтры--> | |
− | + | <entities> | |
− | + | ||
− | + | ||
− | + | ||
− | < | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
<entity>Allocation</entity> | <entity>Allocation</entity> | ||
− | + | </entities> | |
− | + | ||
− | + | </RequestAllocation> | |
− | + | ||
− | + | ||
− | + | ||
− | </ | + | |
</source> | </source> | ||
Строка 69: | Строка 88: | ||
<br> | <br> | ||
− | + | == Ответ сервиса == | |
Сервис возвращает ответ, содержащий массив запрошенных объектов | Сервис возвращает ответ, содержащий массив запрошенных объектов | ||
Строка 77: | Строка 96: | ||
<Result> | <Result> | ||
<Success code="200"> | <Success code="200"> | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
<Cities> | <Cities> | ||
<City> | <City> | ||
− | <id> | + | <id>1469</id> |
− | <name> | + | <name>Абакан</name> |
</City> | </City> | ||
− | |||
</Cities> | </Cities> | ||
+ | |||
+ | |||
+ | |||
+ | <Countries> | ||
+ | <Country> | ||
+ | <id>124</id> | ||
+ | <name>Абхазия</name> | ||
+ | </Country> | ||
+ | </Countries> | ||
+ | |||
+ | |||
+ | |||
<Resorts> | <Resorts> | ||
− | + | <Resort> | |
− | <id> | + | <id>4740</id> |
− | <name> | + | <name>Hail Al Shas</name> |
<ResortPlaces> | <ResortPlaces> | ||
<ResortPlace> | <ResortPlace> | ||
− | <id> | + | <id>3962</id> |
− | <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> | + | <id>187105</id> |
− | <name> | + | <name>101 Holiday Suite</name> |
<category>4*</category> | <category>4*</category> | ||
</Allocation> | </Allocation> | ||
− | |||
</Allocations> | </Allocations> | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
<AllocationTypes> | <AllocationTypes> | ||
<AllocationType> | <AllocationType> | ||
− | <id> | + | <id>41</id> |
− | <name> | + | <name>Hostel</name> |
</AllocationType> | </AllocationType> | ||
− | |||
</AllocationTypes> | </AllocationTypes> | ||
+ | |||
<AllocPlaceTypes> | <AllocPlaceTypes> | ||
<AllocPlaceType> | <AllocPlaceType> | ||
− | <id> | + | <id>3</id> |
− | <name> | + | <name>Горнолыжный</name> |
</AllocPlaceType> | </AllocPlaceType> | ||
− | |||
</AllocPlaceTypes> | </AllocPlaceTypes> | ||
+ | |||
<AllocPlaceValues> | <AllocPlaceValues> | ||
<AllocPlaceValue> | <AllocPlaceValue> | ||
Строка 139: | Строка 196: | ||
<name>1-я линия</name> | <name>1-я линия</name> | ||
</AllocPlaceValue> | </AllocPlaceValue> | ||
− | |||
</AllocPlaceValues> | </AllocPlaceValues> | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</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>