Предисловие
Особенности API в Denvic Control Center
Коннекторы всегда инициируют взаимодействие с DCC сами, также прямого взаимодействия между Коннекторами и внешними потребителями нет. Работа производится асинхронно и опосредованно через DCC.
Регистрация Коннектора
Работа с экземплярами Коннектора начинается с регистрации Коннектора в DCC и получения им своего idConnector ( через метод POST /api/v1/connector, без указания
id_connector. При указанииid_connectorвыполняется update указанного Коннектора).После начала работы Коннектор сразу отправляет свои метаданные в DCC. Далее, Коннектор отправляет всю информацию, включая шаблон и метаданные по всем своим проектам (через метод POST /api/v1/projects).
Статусы Коннектора, отправка и получение заданий
Периодически, Коннектор отправляет свой статус (через метод POST /api/v1/ping).
Также, Коннектор запрашивает для себя список заданий (через метод GET /api/v1/get_tasks), после чего, в ответ получает список накопившихся для него заданий, которые ему дают фронтенд и внешние сервисы (Потребители) через Rest API DCC (т.е., задачи можно поставить, как через Rest API, так и из интерфейса DCC).
Коннектор при получении команды
exec(т.е., «выполнить») начинает выполнение проекта и запись лога (через метод POST /api/v1/add_log), при этом, в процессе выполнения проекта, он актуализирует состояние каждой команды по методу POST /api/v1/update_task_status.Потребители (внешние сервисы) и интерфейс DCC создают задачу через метод POST /api/v1/create_task, в ходе которой DCC кладет в очередь задачу «Выполнить» (exec) для данного Коннектора.
Далее Потребители периодически опрашивают DCC методом POST /api/v1/get_task_status, получая актуальный статус задачи, отправленной на исполнение в Коннектор.
Методы API
Для методов POST — все параметры передаются в теле.
Для методов GET — все параметры передаются в строке (url).
Во всех GET-методах есть пагинация (offset + limit на странице), то есть параметры:
page-size (размер выборки);
offset (смещение, от 0);
dt_from (время модификации, «от» в UTC);
dt_to (время модификации, «до» в UTC).
Для проверки работоспособности DCC используется Метод GET /ping.
Он возвращает:
текущее время бэкенда;
uptime (время старта сервиса после последнего перезапуска).