Перейти к содержанию

Статья для предыдущей поддерживаемой версии ПО — 4.7!

Текущая рекомендованная версия — Comindware Platform 5.0. См. документацию к версии 5.0.

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

Введение

Comindware Business Application Platform может получать HTTP-запросы с помощью встроенного HTTP-адаптера.

Здесь на примере сценария приема заказов мы разберем настройку получения и обработки HTTP-запроса в формате JSON.

Настройка для обработки XML и простого текста будет аналогичной.

Исходные данные

Пример JSON-данных из запроса, поступающего в систему из внешней системы:

{ 
"ListZakazov": [
{
"Zakaz": {
"Client": "Петров",
"nomer": 54,
"tovar":"Яблоко"
}
},
{
"Zakaz": {
"Client": "Иванов",
"nomer": 60,
"tovar":"Банан"
}
},
{
"Zakaz": {
"Client": "Сидоров",
"nomer": 61,
"tovar":"Груша"
}
}
]
}

В приложении имеется шаблон записи «Заказы», с атрибутами:

  • Номер — тип данных: Число
  • Клиент — тип данных: Текст
  • Товар — тип данных: Текст

Примечание

Здесь не рассматривается поиск схожих данных и проверка на их наличие.

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

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

    Создание подключения
    Создание подключения
  2. Настройте свойства нового подключения:

    • Системное имя (на латинице) нового подключения;
    • Описание — отображаемое название нового подключения;
    • Путь URI — путь, на который будут поступать HTTP-запросы;
    • Формат данныхJSON. Также поддерживаются XML и простой текст, но здесь рассматривается обработка данных в формате JSON.
  3. Сохраните подключение.

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

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

Создание пути передачи данных

Создание пути передачи данных
  1. В окне создания нового пути передачи данных укажите:

    • Подключение — выберите ранее созданное подключение.
    • Системное имя (на латинице) нового пути передачи данных;
    • Описание — наглядное наименование нового пути передачи данных.
  2. Перейдите на вкладку «Атрибуты сообщения».

    Запрос — здесь указывается данные JSON сопоставляются с атрибутами Comindware Business Application Platform.

    На данном этапе следует посмотреть структуру JSON-данных, поступающих в запросе, и разобрать их на атрибуты с указанием типов данных:

    • ListZakazov — атрибут, который содержит в себе данные по всем заказам. Типобъект;
    • Zakaz — атрибут, который тоже в себе содержит данные по одному заказу. Типобъект;
    • nomer — атрибут, содержащий значение номера заказа. Типчисло;
    • Client — атрибут, содержащий значение клиента заказа. Типстрока;
    • tovar — атрибут, содержащий значение товара заказа. Типстрока.
  3. Воссоздайте структуру входных данных JSON в таблице «Запрос» с помощью кнопки «Добавить».

    Примечание

    Чтобы создать в таблице дочерний атрибут, установите флажок у родительского атрибута и нажмите кнопку «Добавить».

    Настройка запроса
    Настройка запроса
  4. При необходимости настройте ответ — здесь можно составить макет JSON, который будет ответом на запрос, и ответ с ошибкой — здесь можно составить макет JSON, который будет ответом на запрос, в котором произошла ошибка.

  5. Перейдите на вкладку «Интеграция».
  6. Укажите атрибуты для десериализации данных. В стандартном варианте следует указать $ в обоих столбцах. Для поиска определенного атрибута используйте JSONPath.
  7. При необходимости укажите атрибут для заголовков, в котором будут содержаться все атрибуты заголовков запроса, атрибут для параметров запроса, в котором будут содержаться все параметры запроса, и атрибут для тела запроса, в котором будет содержаться всё тело запроса.
  8. В поле «Базовый путь для приема HTTP-запросов» указан адрес, на который внешняя система должна отправлять запросы в Comindware Business Application Platform.
  9. Сохраните путь передачи данных.

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

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

Настройка сценария для обработки полученного JSON запроса

  1. Перейдите на страницу «Администрирование» приложения. Откройте страницу «Сценарии». Нажмите кнопку «Создать». Введите название, системное имя сценария и нажмите кнопку «Сохранить».

    Создание сценария
    Создание сценария
  2. У начального события измените тип на «Получение сообщения» и настройте его.

    • Выберите шаблон записи, куда будут поступать основные данные;
    • Выберите ранее созданные подключение и путь передачи данных;
    • Задайте имя переменной (любое на латинице).
    Настройка события
    Настройка события
  3. Добавьте действие «Повторять по количеству объектов» и настройте его. - Задайте имя переменной (в данном примере указана переменная local), в ней будет храниться объект итерации; - Напишите выражение на языке N3, по которому система выберет нужные объекты для итерации.

    @prefix session: <http://comindware.com/ontology/session#>. 
    @prefix var: <http://comindware.com/ontology/session/variable#>.
    {
    session:context var:request ?req. #request — переменная из первого блока, в которой находится разобранный JSON
    ?req var:ListZakazov ?value. #ListZakazov - переменная, в которой находится массив объектов
    }
    Настройка действия «Повторять по количеству объектов»
    Настройка действия «Повторять по количеству объектов»
  4. Внутрь действия «Повторять по количеству объектов» добавьте действие «Создать запись» и укажите шаблон записи «Заказы».

  5. Внутрь действия «Создать запись» добавьте действие «Изменить значения атрибутов» и настройте его.

    • Добавьте три атрибута (Клиент, Товар и Номер);
    • Операцию со значениями у всех атрибутов укажите «Заменить»;
    • Значением будет формула $$local—Zakaz—Client (для клиента), для остальных атрибутов будет такая же формула, только в конце в место Client будет название соответствующего атрибута JSON.

    Переменная $$local — хранит значение текущего объекта итерации. Пример:

    { 
    "Zakaz": {
    "Client": "Петров",
    "nomer": 54,
    "tovar": "Яблоко"
    }
    },

    Переменная $$local—Zakaz будет содержать массив данных по заказу из текущего объекта итерации. Пример:

    { 
    "Client": "Петров",
    "nomer": 54,
    "tovar": "Яблоко"
    }

    Переменная $$local—Zakaz—Tovar будет данные информации о товаре по заказу из текущего объекта итерации. Пример:

    "Яблоко"
    Настройка действия «Изменить значения атрибутов»
    Настройка действия «Изменить значения атрибутов»
  6. Получившийся сценарий должен выглядеть следующим образом:

    Сценарий обработки заказа
    Сценарий обработки заказа

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

  1. Отправьте запрос из внешней системы в Comindware Business Application Platform на адрес, указанный в поле «Базовый путь для приема HTTP-запросов» в свойствах пути передачи данных.

  2. Проверьте обработку запроса: должны быть созданы записи в шаблоне «Заказы», соответствующие полученному запросу, как показано на иллюстрации:

Полученные заказы

Полученные заказы

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

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

К началу