Предисловие

Особенности 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 (время старта сервиса после последнего перезапуска).

Статусы и коды ошибок в Rest API

Код

Расшифровка

200

Успешное выполнение запроса.

400

ad request. Ошибка при отправке клиентом (основная ошибка с телом, обычно по ней все понятно).

401

Ошибка, связанная с отсутствием авторизации.

403

Ошибка, связанная с отсутствием прав.

422

Ошибка валидации, неверный запрос.

500

Внутренняя ошибка сервера (для ее решения можно попытаться через таймаут снова повторить команду).