Интеграция Mobile SMARTS со сторонними системами через REST API
API (Application Programming Interface) — интерфейс для программирования приложений, позволяет удаленно обращаться к функциям приложения и выполнять какие-либо действия в нем. Чаще всего используется для получения данных для мобильных приложений, интернет порталов и интеграции с внешними системами (например, интернет магазинами).
В качестве API в нашей системе используется REST API на основе протокола OData, в котором собраны наибол ее популярные техники работы с данными через HTTP запросы (GET,POST,PUT,PATCH). Более подробную информацию по работе с OData (4.0) можно найти по ссылке — http://www.odata.org/documentation.
Удобством использования REST является возможность проверки получаемых данных в обычном браузере, либо использованием стандартных приложений для выполнения HTTP запросов, например Advanced REST client (ARC).
В нашей системе также предусмотрена возможность просматривать структуру API и выполнять простые запросы, используя Swagger.
Подключение через REST API
Точкой входа для доступа к API в нашей системе является url вида:
http(s)://{имя сервера}:{порт базы}/api/v1
По нему можно получить список методов апи.
Чтобы узнать порт сервера, порт базы или идентификатор базы, надо воспользоваться приложением для администрирования сервера Mobile SMARTS.
Или менеджером баз данных Mobile SMARTS.
Для приведенных скриншотов url получаются такими:
httр(s)://localhost:10511/c474fb91-6482-4386-8e72-c71cc383/api/v1http(s)://localhost:9706/api/v1
Проверка запросов через Swagger
Примеры Swagger для Mobile SMARTS:
В нашей системе также предусмотрена возможность просматривать структуру API и выполнять простые запросы, используя Swagger. Для доступа к н ему необходимо в браузере зайти по адресу:
http://xxx.xxx.xxx.xxx:9000/MobileSMARTS/swagger/ui/index
По этому адресу открывается страница с описанием всех методов.
Каждая группа в этом списке разворачивается и отображает все методы этой группы.
В каждом методе можно просматривать все входящие и исходящие параметры. Также можно просмотреть описание сущностей, которые отправляются/получаются при использовании этого метода.
Также можно получить json схемы всех методов апи и по нему генерировать модели в своем приложении.
http://localhost:{порт базы}/swagger/docs/v1 — получение json сваггера.
Авторизация через REST API
Если в системе включена авторизация, то для начала работы с API нео бходимо пройти авторизацию в системе.
Реализованы несколько вариантов авторизации:
- BASIC авторизация.
- Авторизация методом GET по адресу /api/session с получением token.
- Авторизация методом POST по адресу /api/session с получением token.
REST API работает только если при работе с ТСД используется сервер Mobile SMARTS. При прямом подключении ТСД к компьютеру через кабель/крэдл или при обмене с учетной системой через папку использовать REST API не получится.
В базе Mobile SMARTS должна быть включена авторизация, тогда для выполнения HTTP-запросов необходимо будет каждый раз авторизовываться, есть 2 варианта авторизации:
- BASIC авторизация — в этом случае при каждом HTTP-запросе нужно будет отправлять логин и пароль;
- авторизация с использованием токена — при первом HTTP-запросе передаются логин и пароль, а сервер MS возвращается токен — уникальный идентификатор сессии (access token), который при последующих HTTP-запросах можно будет использовать вместо передачи логина и пароля. Срок действия токена (т.е. сессии) огр аничен, поэтому для обновления токена при первом запросе сервер Mobile SMARTS дополнительно возвращает «токен обновления» (refresh token) — он нужен для получения нового токена после истечения срока действия текущего токена.
Обратите внимание. Для защиты передаваемых данных рекомендуется использовать режим с включенной аутентификацией и доступом по https.
Для работы через протокол https необходимо указать это в настройках базы данных, для этого зайдите в менеджер базы, справа кнопки «Добавить» нажмите на выпадающий список и выберите пункт «Настройки», далее в окне «Редактирование настроек» поставьте галочку «Использовать http» и нажмите «ОК».
Для работы в режиме с включенной аутентификацией необходимо завести пользователей, задать им логины и пароли. В панели управления Mobile SMARTS узел «Пользователи и группы» содержит данные о пользователях и группах, в которых они состоят.
Инструкция по конфигурации настроек пользователей и групп пользователей, как определить роль пользователей и список типов документов, доступных для обработки пользователям такой группы описана в одноименной статье на сайте.
Пример запроса на авторизацию методом POST
-
Для начала в настройках базы Mobile SMARTS включите авторизацию/аутентификацию по пользователю и нажмите на кнопку «ОК»
-
Пример запроса на авторизацию
http://localhost:51434/api/v1/session?username={username}&password={password}, в ответ приходит Access_token.
-
В последующих запросах в заголовке указываем
{Authorization: Bearer {Access_token}.Если не указать Authorization, в ответ приходит статус оши бки 401 — Unauthorized.
-
При успешной авторизации приходит ответ и статус 202 — OK.
BASIC авторизация
Данный вид авторизации чаще всего используется браузером для доступа к функциям API.
При использовании данного метода необходимо в заголовке каждого запроса указывать:
Authorization: Basic {login}:{password}
Допускается base64 при формировании строки {login}:{password}
Авторизация методом GET
Еще один способ авторизации — отправить GET запрос по адресу /api/v1/session, при этом в url запросе указать параметры login и password:
https://localhost:9000/api/v1/session?username=${Username}&password=${Password}
Ответ сервера:
{
Access_token:"123123123",
Token_type:"bearer",
Expires_in:86400,
Refresh_token:"321321321",
}