Параметризация HTTP заголовков узла Веб-сервис REST/JSON
Задача
Получить от веб-сервиса аутентификации JWT токен по переданным параметрам учетной записи и отправить данные удалённому веб-сервису с аутентификацией по полученному токену.
Исходные данные
Перед тем как приступить к решению задачи, необходимо изучить веб-сервис, предоставляющий JWT токены, и веб-сервис, принимающий данные с аутентификацией.
Для воспроизведения задачи в тестовом режиме, при построении процесса будут использованы тестовые веб-сервисы:
- Веб-сервис "Аутентификации" — тестовый веб-сервис, возвращающий по переданным учётным данным JWT токен.
- Веб-сервис "Приемник данных" — эхо веб-сервис, возвращающий отправленный ему запрос.
Сценарий решения задачи
Решение задачи будет включать в себя два этапа:
- Этап №1 — получение JWT токена по учётной записи для дальнейшей аутентификации в веб-сервисе, будет включать шаги:
- Создание параметров процесса, определяющих учётную запись для аутентификации.
- Отправка в веб-сервис "Аутентификации" запроса на получение JWT токена по учётной записи.
- Извлечение токена.
- Этап №2 — отправка данных веб-сервису "Приемник данных" с аутентификацией по полученному JWT токену, будет включать шаги:
- Получение данных из Колибри, которые должны быть отправлены в веб-сервис "Приемник данных".
- Подготовка полученных данных для отправки.
- Параметризация HTTP заголовка аутентификации.
- Отправка данных с аутентификацией веб-сервису "Приемник данных".
Используемые узлы
Веб-служба REST/JSON
Таблица JSON
Получить строки Колибри
Преобразовать в CSV
Формула
Преобразовать в Объект
В процессе будет использована параметризация свойств узла с помощью расчетного параметра и объект как расчетный параметр в формуле узла.
Построение и настройка процесса
- Создадим и сохраним новый процесс.
- Создадим параметры процесса
username
иpassword
, определяющие учётную запись, по которой будет получен JWT токен.
При необходимости параметры можно сделать "Визуальными" и при каждом запуске процесса указывать их значения вручную.
- Для получения JWT токена, который будет использован для аутентификации в веб-сервисе "Приемник данных", отправим запрос с учётной записью в веб-сервис "Аутентификации".
Для этого добавим узел Веб-служба REST/JSON, установим название "Аутентификация" и настроим свойства.
- Передача учётной записи веб-сервису "Аутентификации" будет выполнена через свойство "Данные", значение которого необходимо сформировать с помощью параметров процесса
username
иpassword
.
Для этого у узла "Аутентификация" создадим порт №3 для параметризации свойства "Данные". - Значение свойства "Данные" узла "Аутентификация" сформируем с помощью узла Формула. Для этого добавим его и соединим выходной порт узла "Формула" с входным портом №3 узла "Аутентификация".
- У узла Формула установим название "Данные учётной записи" и настроим формулу с использованием параметров процесса.
- Выполним проверку процесса, при наличии ошибок исправим их.
- Запустим процесс в отладке для просмотра результатов узла "Аутентификация". Токен получен.
- Чтобы извлечь полученный токен для дальнейшего использования, добавим узел Таблица JSON и соединим её входной порт с выходным портом узла "Аутентификация".
- У узла Таблица JSON установим название "Извлечение токена" и настроим свойства.
Так как от веб-службы пришел объект, а не массив, установим режим документа и добавим в колонки извлекаемое свойство JSON-объектаaccess_token
.
- Выполним проверку процесса, при наличии ошибок исправим их.
- Запустим процесс в отладке для просмотра результатов узла "Извлечение токена". Он будет использован в последующих шагах.
- В веб-сервис "Приемник данных" будут переданы данные справочника Колибри. Для их получения из Колибри, добавим узел Получить строки Колибри.
- Настроим свойства узла Получить строки Колибри.
- Данные должны быть переданы в формате CSV, поэтому подготовим их для отправки, преобразовав в соответствующий формат.
Для этого добавим узел Преобразовать в CSV и соединим его входной порт с выходным портом узла "Получить строки Колибри".
- Настроим свойства узла Преобразовать в CSV.
- Для отправки данных веб-сервису "Приемник данных" добавим узел Веб-служба REST/JSON.
- У узла Веб-служба REST/JSON установим название "Веб-сервис "Приемник данных" и настроим свойства.
- Для аутентификации в веб-сервис "Приемник данных" необходимо передать полученный токен в качестве параметризованного HTTP заголовка аутентификации. Для этого будет использован вычисляемый заголовок, чтобы в его формуле можно было использовать токен, необходимо преобразовать результат узла "Извлечение токена" в объект.
Добавим узел Преобразовать в Объект и соединим его входной порт с выходным портом узла "Извлечение токена".
- Для использования в HTTP заголовке узла "Веб-сервис "Приемник данных" значения токена, создадим у узла порт Параметр формулы и переименуем его.
Токен, как объект, будет доступен в узле "Веб-сервис "Приемник данных" по имениtokenPort
.
- Соединим выходной порт узла "Преобразовать в Объект" с входным портом №3 узла "Веб-сервис "Приемник данных".
- В узле "Веб-сервис "Приемник данных" на вкладке "HTTP заголовки" создадим вычисляемый заголовок, укажем название заголовка
Authorization
, а в формуле из объектаtokenPort
извлечем токен.
- Для передачи веб-сервису "Приемник данных" данных справочника Колибри в виде файла, необходимо передать сам файл и добавить соответствующий заголовок.
Для передачи файла на входной порт №2 узла "Веб-сервис "Приемник данных" подадим выходные данные узла "Преобразовать в CSV".
- Для передачи файла сервису необходимо передать заголовок
Content-Type
с соответствующим значением.
Для этого в узле "Веб-сервис "Приемник данных" на вкладке "HTTP заголовки" добавим "Значение заголовка".
- Выполним проверку процесса, при наличии ошибок исправим их.
- Запустим процесс в отладке для просмотра результатов узла "Веб-сервис "Приемник данных".
Веб-сервис вернул отправленные ему данные и токен аутентификации.