Для отправки и приема сообщений в СМЭВ посредствам интеграционного узла адаптера (ИУА) можно использовать несколько интерфейсов, в том числе интерфейс «Web-сервис». Web-сервис ИУА реализован для обеспечения информационного взаимодействия по SOAP или REST API протоколу.
Рассмотрим примеры обменов по SOAP – протоколу на примере работы в приложении SOAP UI.
Скачать дистрибутив бесплатной версии программы SOAP UI можно здесь. После скачивания и установки ИУА (Интеграционного Узла Адаптера) и SOAP UI, создайте новый Soap проект:
Адрес WSDL в ИУА по умолчанию: http://localhost:7575/ws/SMEVServiceAdapterService?wsdl
Слева будут доступные методы:
Web-сервис предоставляет следующие методы:
Метод «Send», обеспечивающий отправку запросов и ответов на запросы в СМЭВ3
Описание основных полей метода Send:
ClientMessage – Контейнер, включает следующие данные сообщения:
- ItSystem – Мнемоника ИС. Код, который присваивается ИС УВ при ее регистрации в СМЭВ.
- RequestMessage– контейнер, включает в себя:
2.1. RequestMetadata/clientId - Уникальный идентификатор запроса. Должен генерироваться для каждого сообщения.
2.2. RequestMetadata/replyToClientId - Идентификатор запроса, на который направляется данный ответ. Применим только для сообщений – ответов.
2.3. RequestMetadata/testMessage – признак тестового сообщения. Если true, то запрос уйдет не реальному УВ, а в эмулятор. Эмулятор в этом случае ответим эталонным сообщением.
2.4. RequestMetadat/RoutingInformation – блок маршрутной информации. Применим только для ВС с динамической маршрутизацией
2.5. RequestContent/content - контейнер, включает в себя:
2.5.1. MessagePrimaryContent – контейнер, в который заключён блок бизнес – данных запроса или ответа.
2.5.2. AttachmentHeaderList – контейнер с информацией о вложениях.
Для тестового обмена, с целью проверить работоспособность ИУА можно:
- для бизнес – части конверта найти любой ВС в ЛК УВ, например, https://lkuv.gosuslugi.ru/paip-portal/#/inquiries/card/dd08daa2-d9cd-11eb-87f2-6dd2d98a56b1 .
- Скачать архив «Инструкции и файлы тестирования с эмулятором.zip» и взять оттуда конверт request.
- Заполнить другие минимально-необходимые поля (ItSystem и clientId ) и отправить конверт с признаком тестового сообщения (<typ:testMessage>true</typ:testMessage>).
Примеры конвертов SOAP UI:
Метод «Get», обеспечивающий прием сообщений из СМЭВ
Описание основных полей метода Get:
MessageQuery – контейнер, включает следующие данные запроса сообщения:
- itSystem - Мнемоника ИС. Код, который присваивается ИС УВ при ее регистрации в СМЭВ.
- specificQuery/messageTypeCriteria/TypeCriteria – Включает следующие перечисляемые типы:
- RESPONSE (Вариант получения очередного ответа);
- REQUEST (Вариант получения очередного запроса) - NodeID – код узла ИС. Используется, если у ИС зарегистрированы выделенные узлы.
Минимальный конверт для использования метода GET должен включать только MessageQuery/itSystem
Метод «Find», обеспечивающий поиск сообщений в ИУА
Описание основных полей метода Find:
FindMessageQuery – контейнер, включает следующие данные запроса сообщений:
- isSystem - Мнемоника ИС. Код, который присваивается ИС УВ при ее регистрации в СМЭВ.
- specificQuery, контейнер, включает варианты запроса сообщений:
2.1. messagePeriodCriteria - Получение сообщений из ИУА за заданный период. Включает поля from и to
2.2. messageClientIdCriteria – контейнер, включает в себя:
2.2.1. clientId - уникальный идентификатор запроса, ранее сформированного и отправленного ИС УВ в ИУА.
2.2.2. clientIdCriteria - Включает следующие перечисляемые типы:
- GET_REQUEST_BY_REQUEST_CLIENTID (Получить запрос по клиентскому идентификатору запроса);
- GET_RESPONSE_BY_RESPONSE_CLIENTID (Получить ответы на запрос по клиентскому идентификатору ответа на запрос);
- GET_RESPONSE_BY_REQUEST_CLIENTID (Получить ответ на запрос по клиентскому идентификатору запроса).
2.3. MessageCountToReturn – Количество сообщений, удовлетворяющих критериям поиска, которое необходимо вернуть.
2.4. MessageOffset - Необходимо последовательно возвращать указанное в MessageCountToReturn - количество, начиная с сообщения с порядковым номером, указанным в MessageOffset, относительно всех сообщений, удовлетворяющих критериям поиска.
Для выполнения метода в SOAP UI, сформируйте конверт сообщения в левой части и нажмите зеленый треугольник:
В правой части экрана будет результат выполнения метода.