Быстрый старт

Используйте сценарии быстрого старта для пошагового создания и настройки REST- и SOAP-клиента.

Создание REST-клиента

В сценарии описывается создание REST-клиента на основе схемы pets.json из папки Ресурсы → schemas → examples и соответствующего ей REST-сервиса pet-service.

  1. Перейдите в раздел "Сервисы и Клиенты".

  2. Нажмите кнопку Add Service.

  3. Выберите тип клиента REST::OPENAPI::CLIENT.

  4. Заполните обязательные поля:

    Поле Значение Описание

    General → Object ID

    rest-client

    Уникальный идентификатор клиента.

    Main → Absolute address

    http://localhost:8181/cxf/pet-service

    Адрес REST-сервиса, к которому клиент будет отправлять запросы.

    Main → OpenAPI schema

    entaxy-resource://schemas/examples/pets.json

    OpenAPI-схема сервиса, указанного в поле Absolute address.

    После добавления сервиса его url становится доступен на странице http://localhost:8181/cxf, на ней отображается список всех сервисов, развернутых на платформе, и ссылки на их конечные точки.

  5. Создайте профиль системы rest-client-system и добавьте к нему выходной коннектор созданного REST-клиента.

  6. В точке кастомизации коннектора pre-output:

    1. Вставьте в метод POST тело сообщения:

      <m:operation name="post">
          <!-- path: /; verb: POST; operationId: post-->
          <m:log message="Called operation: ${headers.operationName}"
                 loggingLevel="INFO"/>
          <setBody>
              <constant>
                  {
                   "id": 1001,
                   "name": "Murzik",
                   "photoUrls": [
                      "https://example.com/images/murzik-1.jpg",
                      "https://example.com/images/murzik-2.jpg"
                      ],
                  "status": "available",
                  "category": {
                          "id": 1,
                          "name": "Cats"
                      },
                  "tags": [
                      {
                      "id": 101,
                      "name": "domestic"
                      },
                      {
                      "id": 102,
                      "name": "vaccinated"
                      }
                      ]
                  }
              </constant>
          </setBody>
      </m:operation>
  7. В точке кастомизации коннектора postprocess добавьте вывод тела ответного сообщения в лог:

    <m:log message="${body}"/>
  8. Перейдите в подраздел "Маршруты выходного коннектора".

  9. Добавьте маршрут Timer и заполните параметры:

    Поле Значение Описание

    General → Route ID

    client-timer

    Уникальный идентификатор маршрута таймера.

    General → Timer Name

    client-timer

    Имя таймера, который запускает маршрут.

    Consumer → Repeat Count

    2

    Количество запусков маршрута.

  10. Нажмите кнопку Add, чтобы добавить маршрут.

  11. В маршрут таймера добавьте вызов системы rest-client-system:

    <m:dynamic-system>
        <m:systemName><constant>rest-client-system</constant></m:systemName>
    </m:dynamic-system>

    Подробнее про тег dynamic-system.

  12. Нажмите Save all, чтобы сохранить маршрут.

  13. Убеждаемся в успешном получении ответа от сервиса:

    14:07:05.100 INFO [default-workqueue-3]
    {
      "id": 1001,
      "name": "Murzik",
      "photoUrls": [
        "https://example.com/images/murzik-1.jpg",
        "https://example.com/images/murzik-2.jpg"
      ],
      "status": "available",
      "category": {
        "id": 1,
        "name": "Cats"
      },
      "tags": [
        {
          "id": 101,
          "name": "domestic"
        },
        {
          "id": 102,
          "name": "vaccinated"
        }
      ]
    }

Создание SOAP-клиента

В сценарии описывается создание SOAP-клиента на основе схемы soap-passive.wsdl из папки Ресурсы → schemas → uniform-service и соответствующего ей SOAP-сервиса soap-service.

  1. Перейдите в раздел "Сервисы и Клиенты".

  2. Нажмите кнопку Add Service.

  3. Выберите тип клиента SOAP::WSDL::CLIENT.

  4. Заполните обязательные поля:

    Поле Значение Описание

    General → Object ID

    soap-client

    Уникальный идентификатор клиента.

    Main → Absolute address

    http://localhost:8181/cxf/soap-service

    Адрес SOAP-сервиса, к которому клиент будет отправлять запросы.

    Main → WSDL schema

    schemas:uniform-service/soap-passive.wsdl

    WSDL-файл с описанием интерфейса SOAP-сервиса.

    Main → Data Format

    CXF_MESSAGE

    Формат обработки SOAP-сообщений через CXF.

  5. Нажмите кнопку Add, чтобы добавить клиент.

    После добавления сервиса его url становится доступен на странице http://localhost:8181/cxf, на ней отображается список всех сервисов, развернутых на платформе, и ссылки на их конечные точки.

Проверка SOAP-клиента с использованием таймера

  1. Создайте профиль системы soap-client-system и добавьте к нему выходной коннектор созданного SOAP-клиента.

  2. В точке кастомизации коннектора pre-output:

    1. Вставьте в метод POST тело сообщения:

      <m:set-operation>PutPackets</m:set-operation>
      
      <m:operation-router>
          <m:operation name="PutPackets">
              <m:log message="Called operation: ${headers.operationName}" loggingLevel="INFO"/>
              <setBody>
                  <constant>
                      <![CDATA[
                      <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                                        xmlns:ns="http://www.entaxy.ru/ExchangeTypes/1.0">
                          <soapenv:Header/>
                          <soapenv:Body>
                              <ns:packets>
                                  <ns:packet>
                                      <ns:id>7b9f3d1e-5a2c-4b8a-9d6e-1f3a5b7c9e1d</ns:id>
                                      <ns:sender>Test_System_1C</ns:sender>
                                      <ns:receiver>Test_System_CRM</ns:receiver>
                                      <ns:payload>Тестовые данные для проверки интеграции</ns:payload>
                                  </ns:packet>
                              </ns:packets>
                          </soapenv:Body>
                      </soapenv:Envelope>
                      ]]>
                  </constant>
              </setBody>
          </m:operation>
      </m:operation-router>
  3. В точку кастомизации коннектора postprocess добавьте вывод тела ответного сообщения в лог:

    <m:log message="${body}"/>
  4. Нажмите кнопку Add, чтобы добавить коннектор.

  5. Перейдите в подраздел "Маршруты выходного коннектора".

  6. Добавьте маршрут Timer и заполните параметры:

    Поле Значение Описание

    General → Route ID

    client-timer

    Уникальный идентификатор маршрута таймера.

    General → Timer Name

    client-timer

    Имя таймера, который запускает маршрут.

    Consumer → Repeat Count

    2

    Количество запусков маршрута.

  7. Нажмите кнопку Add, чтобы добавить маршрут.

  8. В маршрут таймера добавьте вызов системы soap-client-system:

    <m:dynamic-system>
        <m:systemName><constant>soap-client-system</constant></m:systemName>
    </m:dynamic-system>

    Подробнее про тег dynamic-system.

  9. Нажмите Save all, чтобы сохранить маршрут.

  10. Убеждаемся в успешном получении ответа от сервиса:

    17:46:52.230 INFO [Thread-596]
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                      xmlns:ns="http://www.entaxy.ru/ExchangeTypes/1.0">
        <soapenv:Header/>
        <soapenv:Body>
            <ns:packets>
                <ns:packet>
                    <ns:id>7b9f3d1e-5a2c-4b8a-9d6e-1f3a5b7c9e1d</ns:id>
                    <ns:sender>Test_System_1C</ns:sender>
                    <ns:receiver>Test_System_CRM</ns:receiver>
                    <ns:payload>Тестовые данные для проверки интеграции</ns:payload>
                </ns:packet>
            </ns:packets>
        </soapenv:Body>
    </soapenv:Envelope>