SOAP-сервис на основе WSDL

На платформе Entaxy вы можете создать два типа сервисов: SOAP и REST. Выбор между ними зависит от требований проекта и предпочтений в использовании соответствующих технологий.

Ниже представлено руководство по созданию SOAP сервиса, реализованного с использованием протокола SOAP и использующего стандарт WSDL для описания своего интерфейса.

Загрузка и управление файлами WSDL

Для создания сервиса требуется файл в формате WSDL с описанием API. Его необходимо загрузить в подраздел schemas раздела Ресурсы. Подробнее о ресурсах - Ресурсы. Структура и назначение.

resources schemas empty

Чтобы загрузить созданный .wsdl файл на платформу, выполните следующие шаги:

  1. В навигационном меню найдите раздел Ресурсы (Resources).

  2. Внутри раздела Ресурсы найдите подраздел Схемы (Schemas) и перейдите на вкладку Resources.

  3. Используйте окно открывшейся вкладки, чтобы переместить в него ваш WSDL файл.

  4. Появится подтверждающее сообщение о том, что файл успешно загружен: "File <file_name> was successfully uploaded."

  5. WSDL файл будет сохранен в папке Resources - schemas. Вы можете использовать его для создания сервисов.

    wsdl schemas

Характеристики WSDL

После успешной загрузки WSDL-файла на платформу вы можете выбрать загруженный файл и перейти на вкладку "wsdl", для просмотра информации о сервисе.

wsdl info

Описание параметров:

  • Object:

    • portName: имя порта;

    • operations: доступные операции/методы;

    • serviceName: имя сервиса;

    • serviceNamespace: url-адрес, определяющий пространство имен XML;

    • serviceResourcesRoot: корневой путь к ресурсам сервиса. Указанный путь находится в подразделе "service-resources";

    • Ports: массив доступных портов;

    • Services: массив содержащий информацию о доступных сервисах.

Поддерживаемые типы WSDL-based SOAP-сервисов

soap service create
  1. SERVICE :: SOAP :: WSDL :: PROTECTED (защищенный SOAP-сервис)

    При создании защищенного сервиса требуется подключение входного коннектора. ВАЖНО! При создании SOAP-сервиса в режиме PROTECTED автоматически создается соответствующий входной коннектор, обеспечивающий безопасное взаимодействие с сервисом.

    connector soap
  2. SERVICE :: SOAP :: WSDL :: PUBLIC (публичный SOAP-сервис)

    При создании публичного сервиса подключение входного коннектора не требуется, взаимодействие с шиной происходит с использованием кастомного маршрута, создаваемого при заведении сервиса.

Параметры SOAP-сервиса (protected/public)

emptyrestgeneral
  • Общие (general):

    Все параметры являются обязательными.

    • Factory Id: идентификатор фабрики создаваемого сервиса. Предустановлен.

    • Service Id: идентификатор сервиса (имя сервиса). Поле для назначения уникального имени создаваемому сервису. Системное имя может содержать только латинские буквы, цифры и дефис, и должно начинаться с буквы. Минимальная длина системного имени 3 символа.

      emptyrestmain
  • Основные (main):

    Все параметры являются обязательными, однако, при загрузке wsdl-файла они будут автоматически заполнены значениями по умолчанию, при необходимости их можно отредактировать.

    • Address: адрес публикации сервиса в рамках шины. Указывает, по какому адресу сервис будет доступен для взаимодействия с другими компонентами системы. Если поле не заполнять, оно будет сгенерировано автоматически на основе Serivce Id (идентификатор сервиса).

    • WSDL schema: загрузка WSDL файла. Для загрузки нажать "Select" и выбрать предварительно загруженный на платформу WSDL файл. В открывшемся окне выбрать .wsdl файл и нажать кнопку "Select".

    • Public Service Schema: параметр, который позволяет сервису предоставить публичный доступ к своей схеме данных, даже если для доступа к остальным ресурсам требуется аутентификация.

    • Service Full Name: параметр указания полного имени выбранного сервиса из WSDL файла.

    • Port: параметр с указанием порта для выбранного сервиса.

    • Enable Authorization. Только для публичного SOAP-сервиса (WSDL-based SOAP service public): чек-бокс указывающий требуется ли авторизация для доступа к сервису.

    • Data Format: поддерживаемые типы данных. Каждый из этих форматов имеет свои особенности и применение, и выбор зависит от конкретных требований вашего проекта.

      • PAYLOAD: простой текстовый или бинарный формат данных без SOAP обертки. Позволяет передавать данные в произвольном формате (например, JSON или XML) без дополнительной обработки.

      • RAW: передача данных в необработанном виде, без изменений и обработки CXF или Camel. Представляет полный контроль над содержимым.

      • MESSAGE: позволяет работать с SOAP-сообщениями на низком уровне, предоставляя доступ к заголовкам и телу сообщения.

      • CXF_MESSAGE: представляет SOAP-сообщение как объект типа "org.apache.cxf.message.Message". Обеспечивает высокоуровневый доступ и манипуляцию с SOAP-сообщениями, включая изменение заголовков или содержимого.

      • POJO: работа с данными в формате Plain Old Java Objects (POJO). Автоматическое преобразование объектов Java в SOAP-сообщения и наоборот, облегчая обмен данными.

    • MTOM Enabled: чек-бокс указывающий, включено ли использование MTOM (Message Transmission Optimization Mechanism) для передачи бинарных данных в SOAP-сообщениях .

    • Schema Validation Enabled: чек-бокс указывающий, происходит ли проверка схемы для входящих/исходящих сообщений.

      Если чек-бокс Schema Validation Enabled включен, сообщения будут проверяться на соответствие XML-схеме. Если сообщение не соответствует ожидаемой структуре или типам данных, будет сгенерировано исключение с сообщением об ошибке.

      Operation Router: редактируемый параметр маршрутизации данных на основе загруженного WSDL-файла.

Создать SOAP сервис:

  1. Для создания SOAP-сервиса перейдите в раздел "Сервисы", затем откройте вкладку "Services" и нажмите на кнопку "Add Service".

    service navigation
  2. Вам будет предложено выбрать тип SOAP-сервиса: защищенный (protected) или публичный (public). Выберите нужный и нажмите кнопку "Next".

  3. В открывшемся окне вы увидите перечень обязательных параметров. Параметры SOAP-сервиса (protected/public) Заполните поля в обоих подразделах "General" и "Main", затем нажмите кнопку "Add".

  4. После выполнения этих действий сервис будет успешно создан.

    soap example

Просмотреть список созданных сервисов

  • Перейдите в раздел "Сервисы", затем откройте вкладку "Services".

  • На этой вкладке вы увидите таблицу с информацией о созданных сервисах.

Таблица содержит следующие столбцы:

  • Name: отображает уникальные имена созданных сервисов.

  • Status: указывает текущий статус каждого сервиса, например, "Active" или "Resolved".

  • Actions: содержит кнопки для управления сервисом: Start, Stop, Uninstall.

    • View Properties: кнопка для просмотра свойств выбранного сервиса.

    • Edit Properties: кнопка для редактирования свойств выбранного сервиса.

      list services

Если вы хотите найти конкретный сервис по имени или статусу, используйте фильтр в таблице. Введите имя сервиса или выберите нужный статус в соответствующем поле фильтрации. Таблица автоматически обновится, чтобы показать только соответствующие результаты.

Остановить сервис

  1. На вкладке "Services" в строке соответствующего сервиса найдите столбец "Action", в котором находятся кнопки управления сервисом.

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

  3. Сервис будет остановлен. Появится подтверждающее сообщение о том, что операция выполнена успешно: "Operation Succeeded!".

  4. В столбце "Status" сервиса должно отображаться "Resolved", подтверждая успешную остановку.

    stop soap

Запустить сервис

  1. На вкладке "Services" в строке соответствующего сервиса найдите столбец "Action", в котором находятся кнопки управления сервисом.

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

  3. Сервис будет запущен. Появится подтверждающее сообщение о том, что операция выполнена успешно: "Operation Succeeded!".

  4. В столбце "Status" сервиса должно отображаться "Active", подтверждая успешный запуск.

Удалить сервис

  1. На вкладке "Services" в строке соответствующего сервиса найдите столбец "Action", в котором находятся кнопки управления сервисом.

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

  3. Появится сообщение с просьбой подтвердить удаление сервиса. Убедитесь, что вы действительно хотите удалить сервис, так как эту операцию нельзя отменить.

  4. Подтвердите удаление, выбрав Confirm или отмените удаление, выбрав Cancel.

  5. В случае подтверждения появится подтверждающее сообщение о том, что операция выполнена успешно: "Operation Succeeded!".

  6. Сервис удален. Он больше не будет отображаться в списке сервисов.