====== Servitum API v1.0 ====== ===== Базовые правила ===== **API** (англ. Application Program Interface) – это интерфейс программирования, который позволяет сайту клуба взаимодействовать с сервером и получать доступ к функционалу сервиса управления фитнес клубом. Servitum API принимает запросы в формате URL-encoded GET методов. Ответ на запрос выдается в JSON или XML формате. Для активации API для клуба необходимо в кабинете компании [[https://app.servitum.net/company/office]] на вкладке **"Другие"** сгенерировать API ключ, который надо будет использовать как один из параметров запроса. ===== Общий формат запроса ===== https://app.servitum.net/api?api_key=<апи ключ компании>&format=&request=<имя операции>&<дополнительные параметры спецефические для запроса> Список параметров: * ''api_key'' - API Key компании * ''format'' - формат возвращаемых данных (необязательный параметр, может быть опущен; по умолчанию json) * ''request'' - команда запроса (на данный момент есть только одна команда - customer_memberships) * ''дополнительные параметры'' - параметры, специфичные для каждой команды ===== Получение активных абонементов клиента ===== Имя команды - **customer_memberships** Эта команда возвращает список активных абонементов указанного клиента. Список параметров специфических для этой команды: * ''last_name'' - фамилия клиента. Параметр не чувтсвителен к регистру букв * ''phone'' - телефон клиента в том формате, в котором он хранится в базе (включая ведущий знак +) Команда ищет клиента по полному совпадению фамилии и номера телефона одновременно. Т.е. если указать только фамилию без телефона, то команда выведет, что клиент не найден. Это сделано, чтобы избежать перебора клиентов клуба по фамилии сторонними пользователями. Пример запроса: https://app.servitum.net/api?api_key=5ca5b3ff853afb7022a90c9ecaf19490&format=json&request=customer_memberships&last_name=Агипов&phone=%2B380663332211 здесь ''%2B380663332211'' -- номер телефона +380663332211, где знак + заменен на URL Encoded представление %2B Привер ответа: {"success":true, "data": [{"name":"Трен Зал 1 мес","status":"active", "start":"11.07.2014", "end":"10.08.2014", "freeze_days_left":"5", "services":[{"service_name":"Тренажерный зал", "service_left":"11","service_used":"1"}]}]} здесь * ''success'' - статус обработки команды * ''data'' - список активных абонементов клиента { "name":"Трен Зал 1 мес" - название абонемента "status":"active" - статус абонемента "start":"11.07.2014" - дата начала действия абонемента "end":"10.08.2014" - дата окончания действия "freeze_days_left":"5" - количество оставшихся дней заморозки "services": - список услуг, доступных в рамках абонемента [{ "service_name":"Тренажерный зал" - название доступной услуги "service_left":"11" - количество доступных занятий "service_used":"1" - количество использованных занятий }] } Текст возвращается в кодировке utf-8. В случае ошибки команда выдает статус ''false'' и в поле ''error'' выводится текст сообщения об ошибке. Например: ''{"success":false, "error":"Customer not found"}''