Керування сервісами SOAP

Сервіси SOAP керуються на двох рівнях:

  • додавання, видалення і деактивація сервісів здійснюється на рівні WSDL;

  • адреса сервісу, метод внутрішнього підключення до мережі і значення часу очікування послуги налаштовуються на рівні сервісу. Однак, легко поширити конфігурацію одного сервісу на всі решту сервісів в одному WSDL.

1. Попередні вимоги до сервісу, що буде доданий до ШБО для виклику через SOAP

Головною вимогою до сервісу, що буде публікуватись в ШБО і викликатись за домомогою SOAP через ШБО, є його повна доступність для реєстрового ШБО через адресу та порт, що буде використовуватись при публікації сервісу. Враховуючи, що сервіс, що буде публікуватись, розгортатиметься в тому ж namespace платформи що і ШБО, він буде доступний для ШБО по внутрішньому доменному імені.

2. Додавання WSDL

Коли додається новий WSDL-файл, шлюз безпечного обміну зчитує з нього інформацію про сервіс і відображає інформацію в таблиці сервісів. Код сервісу, заголовок і адреса читаються з WSDL.

Щоб додати WSDL, виконайте такі дії:

  • в меню Конфігурація виберіть Клієнти шлюзу безпечного обміну, далі виберіть клієнта з таблиці і натисніть значок Сервіси SOAP у цьому рядку;

  • натисніть Додати WSDL, введіть WSDL-адресу в вікні, що відкриється, і натисніть OK. WSDL і інформація про сервіси, які вона містить, додаються до таблиці.

  • за замовчанням WSDL додається у вимкненому стані, тому після додавання нового WSDL його потрібно ввімкнути. Для цього оберіть щойно доданий WSDL і натисніть кнопку Ввімкнути.

Щоб переглянути список сервісів, що містяться в WSDL, натисніть символ ">" перед рядком WSDL, щоб розгорнути список.

Додані файли WSDL оброблятимуться шлюзом безпечного обміну, щоб визначити, чи підтримуються системою "Трембіта" визначені в них сервіси. На розширеному екрані відображатимуться лише підтримувані сервіси. Адміністратору буде показано попередження, якщо доданий WSDL містить непідтримувані сервіси.

4. Приклад виклику сервісу через SOAP

Можна використати будь який SOAP клієнт. Приклад WSDL файлу:

<soapenv:Envelope xmlns:gs="http://diia.gov.ua/ws/registry/population" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xro="http://x-road.eu/xsd/xroad.xsd" xmlns:iden="http://x-road.eu/xsd/identifiers">
   <soapenv:Header>
      <xro:protocolVersion>4.0</xro:protocolVersion>
      <xro:id>MDTUDDM</xro:id>
      <xro:userId>MDTUDDM</xro:userId>
      <xro:service iden:objectType="SERVICE">
         <iden:xRoadInstance>SEVDEIR-TEST</iden:xRoadInstance>
         <iden:memberClass>GOV</iden:memberClass>
         <iden:memberCode>43395033</iden:memberCode>
         <!--Optional:-->
         <iden:subsystemCode>DDMTest_prod</iden:subsystemCode>
         <iden:serviceCode>getRecord</iden:serviceCode>
         <!--Optional:-->
      </xro:service>
      <xro:client iden:objectType="SUBSYSTEM">
         <iden:xRoadInstance>SEVDEIR-TEST</iden:xRoadInstance>
         <iden:memberClass>GOV</iden:memberClass>
         <iden:memberCode>43395033</iden:memberCode>
         <!--Optional:-->
         <iden:subsystemCode>DDMTest_cons</iden:subsystemCode>
      </xro:client>
   </soapenv:Header>
   <soapenv:Body>
      <gs:getRecordRequest>
         <gs:taxpayerIdentificationNumber>111111111</gs:taxpayerIdentificationNumber>
      </gs:getRecordRequest>
   </soapenv:Body>
</soapenv:Envelope>