Подключение туроператоров — различия между версиями

Материал из wiki.Sletat.ru
Перейти к: навигация, поиск
(Реализуемые методы)
(Реализуемые методы)
Строка 94: Строка 94:
  
 
Корневой элемент '''getDepartCitiesResult''' содержит произвольное количество элементов '''city''', каждый из которых описывает город вылета атрибутами '''id''' (идентификатор города) и '''name''' (название города, язык рус/анг). Каждый элемент '''city''' также должен содержать набор элементов '''countryTo''', каждый из которых описывает доступное направление из города вылета. Для элемента '''countryTo''' указывается атрибут '''id''' с идентификатором страны.
 
Корневой элемент '''getDepartCitiesResult''' содержит произвольное количество элементов '''city''', каждый из которых описывает город вылета атрибутами '''id''' (идентификатор города) и '''name''' (название города, язык рус/анг). Каждый элемент '''city''' также должен содержать набор элементов '''countryTo''', каждый из которых описывает доступное направление из города вылета. Для элемента '''countryTo''' указывается атрибут '''id''' с идентификатором страны.
 +
 +
=== Выгрузка списка курортов ===
 +
 +
Метод возвращает список всех доступных курортов.
 +
 +
'''Формат запроса:''' ?action=GetResorts
 +
 +
'''Параметры:'''
 +
 +
* id – идентификатор курорта (опциональный; если указан, то запрашивается только одна запись)
 +
 +
'''Формат выдачи:'''
 +
 +
<getResortsResult version="1.0">
 +
  <resort id="{Int32}" name="{String}" countryId="{Int32}" />
 +
  ...
 +
</getResortsResult>
 +
 +
Корневой элемент '''getResortsResult''' содержит произвольное количество элементов '''resort''', каждый из которых описывает курорт атрибутами '''id''' (идентификатор курорта), '''name''' (название курорта, язык рус/анг) и '''countryId''' (идентификатор страны в котором расположен курорт).
 +
 +
=== Выгрузка списка категорий отелей ===

Версия 12:57, 20 января 2016

Описание сервиса

Для интеграции со Слетать.ру нужно создать веб-сервис, который будет выполнять следующие задачи:

  • Выгружать справочники: города вылета, страны, курорты, отели и т.д.
  • Осуществлять параметризованный поиск цен
  • Актуализировать выбранный тур по его идентификатору

Для упрощения, сервис можно представить веб-страничкой, которая принимает GET или POST параметры и выдаёт ответ в формате XML (не SOAP).

Для всех методов сервиса должен использоваться один адрес. Например, если вы реализуете сервис по адресу: http://mysite.com/services/sletatru.xml , то этот адрес должен быть общим для всех запросов.

Примеры:

Выдача результатов должна быть в формате XML, для каждого метода описан формат.

Для корневого элемента в результате должен быть указан атрибут version с указанием версии протокола. Атрибут нужен для определения версии провайдера туров сервисом Слетать.ру.

Пример:

<getCountriesResult version="1.0">
...
</getCountriesResult> 

Данный документ описывает версию прокола 1.0.

Все методы должны возвращать XML в кодировке UTF-8.

Все параметры запросов, не помеченные как обязательные, являются необязательными только для стороны, формирующей запрос. Для серверной стороны обработка всех полученных параметров запроса обязательна.

Результат выполнения запросов (поискового в частности) должен строго соответствовать указанным параметрам. Если параметр не обязателен и не указан, запрос его не учитывает и возвращает все варианты.

Пул IP адресов, с которых сервис Слетать.ру будет обращаться к реализуемому провайдеру туров уточняется отдельно. Для его уточнения необходимо написать на support@sletat.ru

Дополнительные требования к сервису

Максимально допустимое время при работе с любым методом сервиса не должно превышать 30 секунд. Рекомендуемая скорость ответов (в том числе для метода выдачи туров) до 5 секунд. Если какой-либо метод вернёт результат за период более 30 секунд, то сервис Слетать.ру не обработает эти данные.

Любой метод реализуемого сервиса может быть вызван одновременно различными потоками. Поэтому в реализации методов не должно быть блокировок, синхронизирующих доступ к методам. Метод выдачи туров должен поддерживать параллельное выполнение нескольких поисковых запросов.

Количество запросов в сутки к реализуемому сервису уточняется отдельно и зависит от следующих параметров:

  • количества и популярности направлений туроператора
  • количества городов вылета
  • количества поисковых запросов в сервисе Слетать.ру

Реализуемые методы

Для каждого метода указано назначение, список входящих параметров, формат выдачи, а также описание и типы данных в выдаче методов.

В методах используются следующие типы данных:

  • Int32 – целое число (32 бита со знаком) от 2, 147, 483, 648 до 2, 147, 483, 647
  • Int64 – целое число (64 бита со знаком)
  • UInt64 – целое число (64 бита без знака)
  • String - строка

Выгрузка списка стран

Метод производит выгрузку всех направлений туроператора.

Формат запроса: ?action=GetCountries

Параметры:

  • id – идентификатор страны (опциональный; если указан, то запрашивается только одна запись)

Формат выдачи:

<getCountriesResult version="1.0">
 <country id="{Int32}" name="{String}" />
 ...
</getCountriesResult>

Корневой элемент getCountriesResult содержит произвольное количество элементов country, каждый из которых описывает направление атрибутами id (идентификатор страны) и name (название страны, язык рус/анг).

Выгрузка списка городов вылета

Метод производит выгрузку всех доступных городов вылета, а также содержит данные о том, какие направления доступны из каждого города вылета. Сервис Слетать.ру периодически обращается к данному методу для обновления данных о доступных направлениях для каждого города вылета у туроператора.

Формат запроса: ?action=GetDepartCities

Параметры:

  • id – идентификатор города вылета (опциональный; если указан, то запрашивается только одна запись)

Формат выдачи:

<getDepartCitiesResult version="1.0">
 <city id="{Int32}" name="{String}">
 <countryTo id="{Int32}" />
 ...
 </city>...
</getDepartCitiesResult>

Корневой элемент getDepartCitiesResult содержит произвольное количество элементов city, каждый из которых описывает город вылета атрибутами id (идентификатор города) и name (название города, язык рус/анг). Каждый элемент city также должен содержать набор элементов countryTo, каждый из которых описывает доступное направление из города вылета. Для элемента countryTo указывается атрибут id с идентификатором страны.

Выгрузка списка курортов

Метод возвращает список всех доступных курортов.

Формат запроса: ?action=GetResorts

Параметры:

  • id – идентификатор курорта (опциональный; если указан, то запрашивается только одна запись)

Формат выдачи:

<getResortsResult version="1.0">
 <resort id="{Int32}" name="{String}" countryId="{Int32}" />
 ...
</getResortsResult>

Корневой элемент getResortsResult содержит произвольное количество элементов resort, каждый из которых описывает курорт атрибутами id (идентификатор курорта), name (название курорта, язык рус/анг) и countryId (идентификатор страны в котором расположен курорт).

Выгрузка списка категорий отелей