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

Материал из wiki.Sletat.ru
Перейти к: навигация, поиск
(Выгрузка списка отелей)
(SletatRu Provider API)
 
(не показаны 34 промежуточные версии 1 участника)
Строка 1: Строка 1:
 
[[Category:Подключение_туроператоров]]
 
[[Category:Подключение_туроператоров]]
==  Описание сервиса  ==
+
==  SletatRu Provider API ==
 
+
Актуальная версия документации доступна по ссылке: https://static.sletat.ru/Files/api/SletatRu_Provider_API.pdf
Для интеграции со Слетать.ру нужно создать веб-сервис, который будет выполнять следующие задачи:
+
* Выгружать справочники: города вылета, страны, курорты, отели и т.д.
+
* Осуществлять параметризованный поиск цен
+
* Актуализировать выбранный тур по его идентификатору
+
 
+
'''Для упрощения, сервис можно представить веб-страничкой, которая принимает GET или POST параметры и выдаёт ответ в формате XML (не SOAP).'''
+
 
+
Для всех методов сервиса должен использоваться один адрес. Например, если вы реализуете сервис по адресу: http://mysite.com/services/sletatru.xml , то этот адрес должен быть общим для всех запросов.
+
 
+
Примеры:
+
* http://mysite.com/services/sletatru.xml?action=GetCountries – запрос списка стран
+
* http://mysite.com/services/sletatru.xml?action=GetDepartCities – запрос списка городов вылета
+
 
+
Выдача результатов должна быть в формате 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''' (идентификатор страны в котором расположен курорт).
+
 
+
=== Выгрузка списка категорий отелей ===
+
 
+
Метод возвращает список категорий отелей (примеры: 3*, 4*, Apts и т.д.).
+
 
+
'''Формат запроса:''' ?action=GetHotelCategories
+
 
+
'''Параметры:'''
+
 
+
* id – идентификатор категории отеля (опциональный; если указан, то запрашивается только одна запись)
+
 
+
'''Формат выдачи:'''
+
 
+
<getHotelCategoriesResult version="1.0">
+
  <hotelCategory id="{Int32}" name="{String}" />
+
  ...
+
</getHotelCategoriesResult>
+
 
+
Корневой элемент '''getHotelCategoriesResult''' содержит произвольное количество элементов '''hotelCategory''', каждый из которых описывает категорию отеля атрибутами '''id''' (идентификар) и '''name''' (название).
+
 
+
=== Выгрузка списка отелей ===
+
 
+
Метод возвращает список всех доступных отелей. В данном методе желательно возвращать только те отели, по которым в базе туроператора есть актуальные цены.
+
 
+
'''Формат запроса:''' ?action=GetHotels
+
 
+
'''Параметры:'''
+
 
+
* id – идентификатор отеля (опциональный; если указан, то запрашивается только одна запись)
+
 
+
'''Формат выдачи:'''
+
 
+
<getHotelsResult version="1.0">
+
  <hotel id="{Int32}" name="{String}" hotelCategoryId="{Int32}" resortId="{Int32}" />
+
  ...
+
</getHotelsResult>
+
 
+
Корневой элемент '''getHotelsResult''' содержит произвольное количество элементов '''hotel''', каждый из которых описывает отель атрибутами '''id''' (идентификатор), '''name''' (название отеля), '''hotelCategoryId''' (идентификатор категории отеля) и '''resortId''' (идентификатор курорта в котором расположен отель).
+
 
+
=== Выгрузка видов питания ===
+
 
+
Метод возвращает список видов питания (примеры: HB, BB, без питания и т.д.).
+
 
+
'''Формат запроса:''' ?action=GetMeals
+
 
+
'''Параметры:'''
+
 
+
* id – идентификатор вида питания (опциональный; если указан, то запрашивается только одна запись)
+
 
+
'''Формат выдачи:'''
+
 
+
<getMealsResult version="1.0">
+
  <meal id="{Int32}" name="{String}" />
+
  ...
+
</getMealsResult> 
+
 
+
Корневой элемент '''getMealsResult''' содержит произвольное количество элементов '''meal''', каждый из которых описывает вид питания атрибутами '''id''' (идентификатор) и '''name''' (название).
+
 
+
=== Выгрузка списка валют ===
+
 
+
Метод возвращает список используемых валют. Список обязательно должен содержать рубли, доллары и евро.
+
 
+
'''Формат запроса:''' ?action=GetCurrencies
+
 
+
'''Параметры:'''
+
+
id – идентификатор валюты (опциональный; если указан, то запрашивается только одна запись)
+
 
+
'''Формат выдачи:'''
+
 
+
<getCurrenciesResult version="1.0">
+
  <currency id="{Int32}" name="{String}" />
+
  ...
+
</getCurrenciesResult>
+
 
+
Корневой элемент '''getCurrenciesResult''' содержит произвольное количество элементов '''currency''', каждый из которых описывает валюту атрибутами '''id''' (идентификатор) и '''name''' (название).
+

Текущая версия на 11:08, 4 октября 2018

SletatRu Provider API

Актуальная версия документации доступна по ссылке: https://static.sletat.ru/Files/api/SletatRu_Provider_API.pdf