selena-online RESTful API

Документация описывает API, с помощью которого приложения могут взаимодействовать с базами данных пользователей системы online-бронирования Селена (http://project.selena-online.ru). Взаимодействие подразумевает получение информации о наличии мест на туристических объектах (круизах, в санаториях, базах отдыха и т.д.), обмен информацией с бухгалтерскими системами учёта, а также бронирование мест.

Архитектура

API реализован в архитектуре REST. REST является архитектурным стилем, и в настоящий момент нет единого стандарта для разработки RESTful-приложений. Из этого следует, что мы не даём гарантии, что API будет полностью соответствовать общепринятым мнениям о том, как нужно проектировать REST-приложения, а также предпочтениям разработчика. Однако разработчик может расчитывать на то, что API в целом соответствует концепции REST.

Данные

Система бронирования Селена имеет некоторые особенности, которые определяют правила доступа к информации. Одной из таких особенностей является изолирование данных пользователей друг от друга.

Пользователями Селены являются туроператоры и туристические компании. Каждый пользователь Селены имеет свою собственную базу данных, и сам определяет, какие объекты размещения (санатории, круизные теплоходы, базы отдыха) будут в ней представлены. В текущей реализации API предоставляет доступ к БД, используя учётные записи - логин и пароль. Каждая учётная запись связана с БД одного из пользователей.

Доступ к данным

В соответствии с архитектурой RESTful-приложений доступ к данным осуществляется с помощью HTTP-запросов с использованием методов GET, POST и т.д. Авторизация выполняется при помощи Base HTTP Authentication.

В общем случае не подразумевается обращение к функциям сервиса при помощи браузера. Однако в целях первичного ознакомления либо отладки собственного приложения разработчик может использовать плагины к браузеру, позволяющие отправлять специальные заголовки в HTTP-запросе. В качестве примера можно привести плагин Advanced Rest Client для Google Chrome.

Ещё один "визуальный" способ - утилита curl. Пример использования в Linux:

curl -H "Accept: application/xml" -u username:password -i https://selena-online.ru/rest/v1/roomlist?apartmentid=24

Формат данных

Поддерживаемые MIME-типы: application/json (по-умолчанию) и application/xml. Для того, чтобы обеспечить разработчику возможность валидации XML, все возвращаемые данные содержат ссылки на XSD-схемы с подробными комментариями.

Кодировка входных и выходных данных - utf-8.

Функциональность

Функционал сервиса разделён на разделы, каждый из которых выполняет определённые задачи:

  • FrontAPI - справочники, наличие мест.
  • DocAPI - заказы и платежи.
  • BookingAPI - бронирование.
  • ProfileAPI - профиль покупателя, Личный кабинет.
  • SyncAPI - синхронизация данных.