HTTP-запросы типа POST. Отправка и получение ответа. Пример: настройка подключения, пути передачи данных и сценария


Введение

Comindware Platform позволяет отправлять HTTP-запросы типа POST для взаимодействия с внешними системами.

Здесь представлен пример настройки подключения, пути передачи данных, шаблона записи и сценария для отправки HTTP-запросов типа POST на внешний сервер и записи данных из ответа сервера в атрибуты шаблона записи.

Прикладная задача

Имеется внешний сервер, на котором хранятся данные контактов:

[  
{
"Contact": {
"ID": "STRING",
"FullName": "STRING",
"PhoneNumber": "STRING"
}
}
]

В ответ на HTTP-запрос с данными контакта внешний сервер отправляет ответ со значением true, если данные на сервере были обновлены:

{ 
"Success": "BOOL"
}

В Comindware Platform имеется шаблон записи «Контакты клиентов».

Требуется:

  • настроить кнопку, которая будет обновлять данные на внешнем сервере данными из шаблона «Контакты клиентов».
  • получить ответ сервера;
  • в случае успешного обновления данных установить для логического атрибута «Данные обработаны» значение true.

Настройка подключения

  1. На странице Администрирование» выберите пункт «Инфраструктура» — «Подключения» .
  2. Откройте или создайте подключение типа «Подключения REST и OData» — «Отправка HTTP-запросов».
  3. Настройте подключение к серверу:

    • Системное имя — введите уникальное имя подключения. Не должно начинаться с цифры. Разрешены английские и русские буквы, цифры и символ «_». Рекомендуется использовать английские буквы.
    • Отключить — установите этот флажок, если требуется временно деактивировать данное подключение.
    • Описание — введите наглядное описание подключения, например «Подключение для отправки HTTP-запросов».
    • Запись в файловые журналы — выберите, какие события следует записывать в журналы:
      • Полные сведения об обработке сообщения;
      • Только ошибки;
      • Отключить — не регистрировать в журнале события отправки запросов.
    • URI — введите URL-адрес сервера, принимающего HTTP-запросы, например http://example.com/api. Символ / в конце URL не требуется.
    • Формат данных — выберите представление данных:
      • JSON — используется в данном примере;
      • XML;
      • Простой текст.
    • Кодировка данных — укажите формат кодировки данных, используемый сервером, по умолчанию: UTF-8.
    • Тип аутентификации — выберите способ проверки подлинности, используемый сервером:
      • Отсутствует;
      • Базовая;
      • Аутентификация Windows.
    • Имя пользователя — укажите учётную запись для подключения к серверу.
    • Пароль — введите пароль к учётной записи для подключения к серверу.
    • Домен — укажите домен пользователя сервера.
  4. Проверьте соединение с сервером, нажав соответствующую кнопку.

  5. При необходимости нажмите кнопку «Скачать журнал», чтобы просмотреть журнал событий отправки запросов.
  6. Сохраните подключение.

Настройка пути передачи данных

  1. Откройте страницу «Администрирование» — «Архитектура» или страницу «Администрирование» приложения.
  2. Выберите пункт «Пути передачи данных» .
  3. Откройте двойным нажатием в списке или создайте путь передачи данных типа «Подключения REST и OData» — «Отправка HTTP-запросов».
  4. Настройте свойства пути передачи данных на следующих вкладках:

  5. Сохраните путь передачи данных.

Основные свойства

На вкладке «Основные свойства» настройте параметры использования пути передачи данных:

  • Подключение — выберите подключение для отправки HTTP-запросов.
  • Системное имя — введите уникальное имя пути передачи данных. Не должно начинаться с цифры. Разрешены английские и русские буквы, цифры и символ «_». Рекомендуется использовать английские буквы.
  • Отключить — установите этот флажок, если требуется временно деактивировать путь передачи данных.
  • Описание — введите наглядное описание пути передачи данных, например «Путь передачи данных для отправки файлов по HTTP».
  • Номер шины данных — выберите номер от 0 до 3, если требуется распределить потоки данных нескольких путей для повышения производительности.

Атрибуты сообщений

Составление атрибута сообщения типа «Объект»

Чтобы составить атрибут сообщения типа «Объект» для хранения структурированных данных, необходимо создать структуру из родительского и дочерних атрибутов:

  • Создайте атрибут типа «Объект», задайте его имя, но оставьте значение пустым.
  • Установите флажок у имени родительского атрибута в таблице и нажмите кнопку «Добавить».
  • Дважды нажмите значок рядом с родительским атрибутом.
  • В таблице отобразится строка дочернего атрибута.
  • Задайте системное имя и тип дочернего атрибута.
  1. Выберите тип сообщения «Отправка HTTP-запросов».
  2. В таблицу «Запрос» добавьте атрибут типа «Строка», например ID — системное имя должно совпадать с именем соответствующего поля на внешнем сервере.
  3. В таблицу «Запрос» добавьте атрибут типа «Объект», например Contact — системное имя должно совпадать с именем соответствующего поля на внешнем сервере.
  4. Добавьте дочерние атрибуты типа «Строка», например FullName и PhoneNumber — системные имена должны совпадать с именами соответствующих полей на внешнем сервере.
  5. В таблицу «Ответ» добавьте атрибут типа «Логический», например Success — это системное имя может быть произвольным.

Интеграция

  1. Выберите метод запроса POST.
  2. В поле «Атрибуты для сериализации в тело запроса» укажите ID, Contact.
  3. Заполните таблицы «Укажите атрибуты для десериализации ответа без ошибки» и «Укажите атрибуты для десериализации ответа с ошибкой»:

    • Путь к атрибуту: $
    • Выражение на языке запросов: $

Настройка шаблона записи

  1. Создайте шаблон «Контакты клиентов».
  2. Создайте следующие атрибуты:

    Название Системное имя Тип
    ID на сервере ID Текст
    Ф. И. О. FullName Текст
    Телефон PhoneNumber Текст
    Данные обновлены DataUpdated Логический
  3. Создайте кнопку «Отправить контакт на сервер» со следующими свойствами:

    • Контекст операции: запись
    • Операция: вызвать событие «Нажата кнопка»
    • Результат выполнения: обновить данные
  4. Поместите атрибуты «ID на сервере», «Ф. И. О.», «Телефон», «Данные обновлены» и кнопку «Отправить контакт на сервер» на форму.

Настройка сценария

Логика работы сценария отправки файлов

  • Сценарий срабатывает при нажатии кнопки «Отправить контакт на сервер» на форме записи с прикреплёнными файлами.
  • Формируется переменная-объект с данными контакта, содержащие значения соответствующих атрибутов шаблона «Контакты клиентов»:

    { 
    "Message":{
    "Contact": {
    "ID": "STRING",
    "FullName": "STRING",
    "PhoneNumber": "STRING"
    }
    }
    }
    • $$Message->Contact->ID — значение атрибута $ID.
    • $$Message->Contact->FullName — значение атрибута $FullName.
    • $$Message->Contact->PhoneNumber — значение атрибута $PhoneNumber.
  • Формируется и отправляется HTTP-запрос, содержащий данные контакта в формате JSON из переменной $$Message:

    { 
    "Contact": {
    "ID": "STRING",
    "FullName": "STRING",
    "PhoneNumber": "STRING"
    }
    }
  • Ответ сервера помещается в логический атрибут «Данные обновлены».

  1. Создайте сценарий «Отправка контакта на сервер».
  2. В свойствах события «Нажатие кнопки» выберите контекстный шаблон «Контакты клиентов» и кнопку «Отправить контакт на сервер».
  3. После события «Нажатие кнопки» создайте действие «Изменить значение переменных» со следующими свойствами:

    • Операция со значениями переменных: заменить
    • Набор переменных: Message
  4. В свойствах действия «Изменить значения переменных» настройте переменные, как указано ниже.

    Сопоставление переменных и объектов с атрибутами сообщения

    Для передачи значения переменной в атрибут сообщения типа «Объект», необходимо создать родительскую и дочерние переменные с такой же структурой, как у атрибута сообщения:

    • Создайте родительскую переменную, присвойте ей имя, но оставьте значение пустым.
    • Установите флажок у имени родительской переменной в таблице и нажмите кнопку «Создать».
    • Дважды нажмите значок рядом с родительской переменной.
    • В таблице отобразится строка дочерней переменной.
    • Присвойте дочерней переменной имя и значение.

    Имена переменных, значения которых передаются в атрибуты сообщений с помощью действия сценария «Отправить сообщение», должны совпадать с системными именами атрибутов сообщения.

    • Contact — с дочерними переменными:

      • IDзначение: формула

        $ID 
      • FullNameзначение: формула

        $FullName 
      • PhoneNumberзначение: формула

        $PhoneNumber 

      Здесь $ID, $FullName и $PhoneNumber — атрибуты шаблона записи «Контакты клиентов».

  5. Создайте действие «Отправить сообщение» со следующими свойствами:

  6. Создайте действие «Изменить значения атрибутов» со следующими свойствами:

    • Атрибут: Данные обновлены
    • Операция со значениями: заменить
    • Значение: формула

      $$Response->Success 

Сценарий отправки HTTP-запроса методом POST

Сценарий отправки HTTP-запроса методом POST

Тестирование

  1. Создайте запись в шаблоне «Контакты клиентов».
  2. Заполните поля контакта и нажмите кнопку «Сохранить».
  3. Нажмите кнопку «Отправить контакт на сервер».
  4. При успешном обновлении данных контакта на внешнем сервере у атрибута «Данные обновлены» будет установлен флажок.

Связанные статьи

К началу


Номер Статьи: 5075
Размещено: Mon, Jan 13, 2025
Последнее обновление: Mon, Feb 3, 2025

Online URL: https://kb.comindware.ru/article/http-zaprosy-tipa-post-otpravka-i-poluchenie-otveta-primer-nastrojka-podklyucheniya-puti-peredachi-dannyh-i-scenariya-5075.html