
Привет, Хабр!
С вами снова Илья Вязников, инженер сопровождения СОФРОС. Продолжаю делится практическими приёмами и полезными настройками платформы.
При интеграции с REST API часто возникает ситуация, когда идентификатор объекта нужно передавать не в теле запроса и не в query-параметрах, а непосредственно в URL.
Например:
PATCH /users/12345
или
PUT /documents/987/status
Такой подход используется во многих CRM, ECM-системах, банковских и государственных API.
Сегодня, разберём, как реализовать подобную интеграцию в DATAREON Platform с помощью шаблона пути и параметров обработчика.
Когда это может понадобиться
Несколько типичных сценариев:
-
Обновление контакта во внешней CRM по адресу /api/contacts/{id};
-
Изменение статуса документа по адресу /documents/{docId}/status;
-
Интеграция с внешними REST API, структура которых строго определена поставщиком.
Во всех этих случаях путь запроса должен формироваться динамически на основе данных сообщения.
Как это работает в DATAREON Platform
Рассмотрим реальный пример: обработчик, который отправляет обновления пользователя во внешнюю систему.
Шаг 1. Шаблон пути
Создадим обработчик типа «Веб-клиент».
В настройках обработчика (вкладка Основные) в поле Шаблон пути указываем:
/endpoint/v1/users/{id}
Здесь {id} — параметр, значение которого будет подставлено при выполнении обработчика.
Название параметра должно совпадать с именем параметра обработчика. Регистр символов также имеет значение. (можно использовать userId, externalId, documentNumber и т.д.).

Шаг 2. Объявление параметра
Переходим на вкладку Параметры обработчика и добавляем параметр:
-
Наименование: id
-
Тип: int (или string, в зависимости от внешней системы)
Если параметр используется в шаблоне пути веб-обработчика расширенного REST API, необходимо пометить его как обязательный. При отсутствии значения платформа не сможет корректно сформировать URL и вернет ошибку.
После этого параметр станет доступен в коде обработчика и при вызове из бизнес-процесса.

Шаг 3. Присвоение значения параметру
Здесь есть два удобных варианта.
Вариант А — из типа данных.
Если идентификатор уже присутствует в сообщении, можно присвоить его в коде обработчика:
На вкладке Код обработчика пишем простое присвоение:
id = Ваш_Тип_Данных.id; // или externalId, userId и т.д.
В результате при выполнении обработчика значение будет подставлено в URL.
Вариант Б — напрямую из бизнес-процесса
Если нужного поля нет в типе данных или значение формируется динамически на этапе процесса, его можно передать в локальную переменную обработчика при вызове шага отправки из бизнес-процесса.
Для примера покажу передачу id из InitMessage:
-
В блоке Отправка указываем обработчик, в котором создана переменная id.
-
Открываем локальные переменные обработчика.
-
Связываем поле id из контекста процесса (InitMessage.id, переменная процесса и т.д.). с переменной обработчика, для передачи значения из процесса в обработчик.


Таким образом, платформа подставит значение в плейсхолдер при формировании запроса.
Например:
Шаблон:
/endpoint/v1/users/{id}
Значение параметра:
id = 12345
Итоговый запрос:
/endpoint/v1/users/12345
Что происходит во время выполнения
При запуске обработчика DATAREON Platform:
-
Берёт шаблон пути.
-
Получает значения параметров обработчика.
-
Подставляет их в шаблон URL.
-
Формирует итоговый адрес запроса.
-
Выполняет HTTP-вызов внешней системы.
Практические советы
-
Используйте понятные имена параметров:
-
/users/{userId}
-
/orders/{orderId}
-
/documents/{documentGuid}
-
-
Если идентификатор представляет собой UUID или строковый код, используйте тип String.
-
В одном URL можно использовать несколько параметров: /api/v1/orders/{orderId}/positions/{positionId}
-
После настройки рекомендуется проверить сформированный URL в журнале выполнения обработчика и убедиться, что все параметры подставляются корректно.
Итог
Шаблон пути в DATAREON Platform позволяет формировать URL динамически и передавать в него значения из сообщений или бизнес-процессов.
Это упрощает интеграцию с REST API, где идентификаторы объектов являются частью адреса запроса, и избавляет от необходимости создавать дополнительные преобразования данных только ради формирования URL.
ссылка на оригинал статьи https://habr.com/ru/articles/1048432/