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

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

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

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

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

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

Додавання WSDL

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

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

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

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

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

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

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

Приклад доданого SOAP сервісу в веб-інтерфейсі ШБО

soap

Приклад виклику сервісу через 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>