Создание и публикация веб-сервиса

Публикация и работа созданных в Loginom веб-сервисов доступна при наличии установленного компонента Loginom Integrator.

Реализация методов сервиса

Взаимодействие с веб-сервисом осуществляется при помощи его методов. Каждый метод веб-сервиса имеет определенный идентификатор и выполняет сопоставленное этому идентификатору действие. Как правило, (но не обязательно) метод принимает входные данные и возвращает ответ. Действие, выполняемое методом, в Loginom реализуется публикуемым узлом Сценария, а структура входных данных и ответа определяется входными и выходными портами этого узла. В качестве идентификатора метода используется строка, состоящая из имени узла и имени пакета, в котором узел содержится.

Чаще всего в качестве такого узла выступает Подмодель, поскольку в ней пользователь имеет возможность реализовать произвольную логику и задать структуру входных и выходных данных, создавая и настраивая ее порты. Но в общем случае таким узлом может быть любой узел Сценария, имеющий настройки, описанные в разделе Настройка публикуемых узлов. В случае, если таких узлов в пакете несколько и публикуется несколько пакетов, то для каждого из таких узлов создается соответствующий ему метод SOAP-сервиса и операция REST-сервиса. В случае с REST-сервисом для каждого из публикуемых пакетов создается конечная точка REST-сервиса.

Настройка публикуемых узлов

Публикуемый в качестве метода веб-сервиса узел должен иметь следующие настройки:

  • задан модификатор доступа Опубликованный;
  • в окне выбора модификатора доступа задано уникальное в пределах пакета имя узла;
  • узел должен быть видимым из корня сценария, т.е. в случае, если узел является вложенным (в подмодель или иерархию подмоделей), то у всех подмоделей, в которых он содержится, должен быть установлен модификатор доступа Открытый;
  • во входных и выходных портах заданы поля/переменные, определяющие структуру запроса и ответа метода веб-сервиса.

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

В связи с этим порты публикуемых узлов необходимо настроить одним из способов:

  • Отключить автосинхронизацию полей и при необходимости задать нужные поля/переменные (рекомендуется).
  • Если механизмом автосинхронизации уже созданы необходимые поля/переменные из подаваемых в порт данных, то необходимо отредактировать любой из параметров (Имя, Метку, Назначение и т.д.) всех необходимых полей/переменных. Измененные поля выделяются в мастере настройки порта жирным шрифтом и фиксируются как постоянные, ожидаемые портом.
  • Очистить список и создать все необходимые поля/переменные вручную.

Параметр Назначение входного поля влияет на свойство его обязательности в запросе к сервису. Поля с Назначением Не задано или Непригодное публикуются как необязательные (в WSDL SOAP-сервиса имеют атрибут minOccurs="0", а в схеме запроса REST-сервиса не входят в состав required-узлов). Поля с другими значениями параметра являются обязательными в запросе. В ответе сервиса все поля публикуются как обязательные.

Публикация

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

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

Чтобы опубликовать пакет, в дереве навигации необходимо кликнуть на нужном пакете правой кнопкой мыши и в контекстном меню выбрать пункт Публикация пакетов…. Откроется мастер публикации пакетов со следующими настройками:

  • Опубликованные пакеты — список уже опубликованных пакетов.
  • Путь к файлу пакета — указывается вручную или выбирается из выпадающего списка открытых пакетов.
  • Выбрать пространство имен — пространство имён элементов и атрибутов, служащее для обеспечения их уникальности в WSDL-описании сервиса. Выбор одного из вариантов:
    • Использовать пространство имен Loginom Integrator;
    • Генерировать уникальное для пакета (используется по умолчанию);
    • Генерировать уникальное для каждой версии пакета;
    • Задать вручную.

Сгененрированное пространство имен, которое будет использоваться для публикации, отображается в окне мастера.

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

Для публикации следует указать путь к файлу пакета, выбрать пространство имен и нажать кнопку Опубликовать.

Обновление публикации

В случае изменения настроек входных/выходных портов (например, количество или имена полей/переменных) опубликованного ранее узла, необходимо обновить публикацию пакета, в котором этот узел содержиться. Для этого нужно:

  1. сохранить пакет с измененным узлом;
  2. выбрать этот пакет в списке Опубликованные пакеты мастера Публикация пакетов… и нажать кнопку Обновить.

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

Удаление публикации

Выбрать необходимый пакет в списке Опубликованные пакеты мастера Публикация пакетов… и нажать кнопку Удалить.

Обращение к созданному сервису

WSDL опубликованного SOAP-сервиса можно получить по ссылке:

http://<Server>/<App>/service.svc?wsdl, где <Server> — хост Loginom Integrator, <App> — имя приложения Loginom Integrator в IIS (задается при инсталляции Loginom Integrator, при установке по умолчанию <App> = lgi).

Пример: http://localhost/lgi/service.svc?wsdl

Информацию о конечных точках, операциях, URL, структуре REST-запросов и ответов можно получить по ссылке:

http://<Server>/<App>/service.svc/rest/help, где <Server> — хост Loginom Integrator, <App> — имя приложения Loginom Integrator в IIS (задается при инсталляции Loginom Integrator, при установке по умолчанию <App> = lgi).

Пример: http://localhost/lgi/service.svc/rest/help

Для обращения к опубликованным сервисам из сценария Loginom используются компоненты SOAP-запрос и REST-запрос.

Совместимость веб-сервисов Loginom с Deductor

В продуктах прошлого поколения (Deductor) публикация веб-сервисов осуществлялась DIS (Deductor Integration Server), а обращение к веб-сервисам DIS из сценариев Deductor осуществлялось при помощи узла WEB-сервис. Чтобы использовать этот узел для обращения к веб-сервисам Loginom, при публикации пакетов должна применятся настройка Использовать пространство имен Loginom Integrator.

Примечание: применение настройки Использовать пространство имен Loginom Integrator при публикации нескольких пакетов накладывает ограничение на именование публикуемых узлов. Имена, задаваемые при выборе модификатора доступа, должны быть уникальны в рамках всего набора публикуемых пакетов.

Веб-сервисы Loginom имеют следующую особенность: XML ответов и запросов веб-сервисов в своей структуре могут иметь элемент <PortName> (элемент содержит имя порта), отсутствующий в веб-сервисах DIS. Для устранения этого различия в публикуемых подмоделях Loginom в имени порта должно указываться <Не задано>.

Примечание: опция <Не задано> при именовании порта доступна в случае, если этот порт единственный входной или выходной. В этом случае для формирования произвольной структуры запроса/ответа в качестве портов Подмодели удобно использовать порты типа Дерево данных с возможностью задать структуру данных XSD-схемой, т.е. использовать тот же механизм, что и в Deductor Integration Server.

Результаты поиска по запросу «» ()

    Нет результатов поиска по запросу ""