Интеграция Нетикс Трицепс с продуктами внешних исполнителей с использованием API

В данной статье рассмотрим вопросы интеграции базы Трицепса с внешними продуктами сторонних исполнителей с использованием API. Самые распространенные сценарии — запрос данных из базы Трицепса для отображения на сайте или для передачи данных руководителю или сотруднику.

К нам периодически обращаются наши клиенты с вопросами интеграции. Запросы как правило разные, но обычно небольшие. Поэтому вместо разработки жестко предопределенного API мы внедрили механизм, который позволяет нам в течение 1-2 часов добавить практически любой метод API и дать его выбранному клиенту. Подход показал отличные результаты и опробован уже в десятках интеграций.
Мы постарались сделать описание нашего подхода несколько упрощенным, чтобы его могли понять программисты разного уровня подготовки. Если вам требуются дополнительные сведения, пожалуйста, задавайте ваши вопросы на info@netix.ru.

Суть подхода заключается в том, что совместно на этапе разработки будет определен список команд, которые потребуются в вашей работе. Для каждой команды определяем список параметров и формат возвращаемых значений, по сути — имена полей и какие именно данные вы ожидаете в этом поле.
В случае команды на запрос — какие колонки должны быть в возвращаемом Dataset.
В случае с изменением данных в базе автосервиса обычно возвращается одна запись с одним или парой полей, например Result и Message, в которых Result может принимать значение Ok или Error, а Message содержать описание ошибки при попытке добавления или обновления данных.
Другими словами, нам необходимо определить функции и их сигнатуры. После этого мы пропишем эти функции в виде команд для нашего метода API — ExternalSystemCommand.
И вам надо будет использовать два метода: первый поставит команду в очередь на выполнение и вернёт GUID идентификатор запроса, второй метод по GUID получит данные.

Пример работы интеграции:
Шаг 1. Постановка задачи в очередь выполнения, результатом является уникальный идентификатор запроса.

GET https://mobile.netix.ru/MobileWebResource.asmx/EnqueueMobileRequest?deviceId=token&actionType=ExternalSystemCommand&parameter=[{"Name":"Request","Type":"Command","Value":"GetAssignmentsByPeriod"},{"Name":"DateFrom","Type":"Date","Value":"2022-01-31"},{"Name":"DateTo","Type":"Date","Value":"2022-02-01"}]

Шаг 2. Получение ответа, в качестве параметра указывается уникальный идентификатор запроса из шага 1.

https://mobile.netix.ru/MobileWebResource.asmx/GetActionResponseToMobile?deviceId=token&actionGuid=5b980624-3b09-4cf6-84f9-7f941b63fe24

Пример ответа

{"NewDataSet":{"SomeName":{"ServerName":"NORTH"}}}
5/5 - (3 голоса)