API - общие положения
Общие положения
API предназначен для интеграции торговых систем клиента с сервисом HEADO и поддерживает JRPC 2.0-протокол вызова методов.
Методы API делятся на два раздела:
- Device API - для взаимодействия с устройством;
- Management API - для взаимодействия в рамках торговой сети.
Warning
Для взаимодействия с API HEADO на передающей стороне необходимо обеспечить доступность https://api.heado.ru и https://gamma.heado.ru по 80 и 443 портам
Протокол обмена данными
Запрос представляет собой JSON-сериализованный объект отправляемый с помощью POST-метода в виде RAW_POST_DATA
Ответ так же является JSON-сериализованным объектом
или отрицательный
Список ошибок
| КОД ОШИБКИ | ПОЯСНЕНИЕ |
|---|---|
| -32000 | Неизвестный идентификатор сотрудника |
| -32500 | Ошибка клиента |
| -32600 | Неправильный формат запроса |
| -32601 | Неправильная операция |
| -32602 | Неправильные параметры операции |
| -32605 | Операция не удалась (повторить отправку) |
| -32606 | Слишком частое выполнение операции (повторить отправку) |
| -32610 | Ошибка БД (повторить отправку) |
| -32700 | Неправильный формат сообщения |
| -32800 | Неизвестный терминал |
| -32801 | Терминал заблокирован |
| -32802 | Невалидный секретный ключ |
| -32803 | Терминал с таким идентификатором уже существует |
| -33000 | Неизвестный пользователь |
| -33001 | Владелец POS не найден |
| -33100 | Отказ в авторизации |
Требования к надежности потоков данных
Надежность потоков данных должна обеспечиваться комплексом организационно-технических мероприятий отладки, поиска и исключения ошибок, а также технологическими процедурами резервирования.
При реализации потоков данных должны обеспечиваться:
- защита от потери данных в условиях возможных сбоев и отказов канала передачи данных, доступности API HEADO;
- диагностика сбоев и отказа канала передачи данных и доступности API HEADO;
- протоколирование событий при передаче данных с возможностью последующего анализа причин возникновения критических ситуаций.
В качестве мер по повышению надежности потоков данных должны быть предусмотрены:
- мониторинг доступности API HEADO;
- отложенная передача данных в случае недоступности API HEADO (прогрессивная задержка повторной передачи, например: 0, 3, 30, 60 сек, и.т.д.);
- обработка ошибок, возвращаемых API HEADO;
- повторная отправка данных в случае наличия ошибок API HEADO;
- диагностика ошибок с помощью программных средств контроля.
Общие интеграционные практики
- При передаче значений в API стоит учитывать, что с данными работают люди через интерфейсы. Далеко не во всех интерфейсах отображаются non-printable characters и ведущие/хвостовые пробелы, по умолчанию данные от них нужно предварительно очищать
- В некоторых случаях интеграций важно сквозное сопоставление данных, например при headless-интеграции с ОФД, в которой Пользователь несёт ответственность за качество и представимость данных
Внешние идентификаторы
- Внешние идентификаторы (
store_ext_id,kpi_ext_id,ext_idсотрудника и др.) сравниваются точно, с учётом регистра:tt1иTT1— разные идентификаторы. - Рекомендуемый набор символов — латинские буквы, цифры,
-,_. - Кириллица в
kpi_ext_idне поддерживается. - Пробел и
/сервис принимает, но использовать их не рекомендуется:/— разделитель в пути@store_ext_id/pos_ext_id, а пробелы легко потерять при очистке данных (п.1).