selena-online RESTful API

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

Архитектура

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

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

В соответствии с архитектурой 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 или json, то тип данных нужно указать в http-заголовке Content-Type. Тип возвращаемых данных указывается в заголовке Accept (по умолчанию). Для того, чтобы обеспечить разработчику возможность валидации XML, все возвращаемые данные содержат ссылки на XSD-схемы с подробными комментариями.

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

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

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

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