Skip to content

Latest commit

 

History

History
91 lines (64 loc) · 5.29 KB

File metadata and controls

91 lines (64 loc) · 5.29 KB

Назад: Модули

Soap модуль

NB. Soap модуль не поддерживает GET запросы к сервисам. Отчасти оттого, что в теле запроса передаётся SOAP-запрос, а у GET-запроса тела нет (если можно так выразиться). По этой причине нужно отправлять POST запрос.

Это можно сделать с помощью утилиты SOAP-UI (можно и в браузере, но в теле запроса нужно писать SOAP-запрос, который на основе WSDL и достаточно громоздкий).

Настройки структуры данных crud-сервиса

Опция types содержит в себе задаваемое в виде мапинга соответствие между классом (полным именем) и мапой публикуемых атрибутов этого класса. В мапе ключем является имя атрибута, а значением - либо строковый псевдоним, либо булево значение указывающее включается атрибут в схему или нет. т.е. если указан псевдоним, то атрибут появляется в схеме под этим псевдонимом, во всех других случаях кроме указания false атрибут появляется под своим именем.

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

Для работы с коллекциями и ссылками

Если значения коллекций и ссылок тоже надо распарсить как то иначе, объекты которые находятся в этих свойствах можно тоже описать мапой в deploy.json вот по такому принципу:

"название_свойства": {
  "name": "новое_название(если нужно, поле необязательное)",
 "types": {
 //описания свойств
 }
}

Пример

  "petitionExperts": {
            "module": "modules/soap/service/crud",
            "options": {
              "dataRepo": "ion://dataRepo",
              "metaRepo": "ion://metaRepo",
              "keyProvider": "ion://keyProvider",
              "namespace": "khv-gosekspertiza",
              "className": "petitionExpert",
              "types": {
                "petitionExperts@khv-gosekspertiza":{
                  "property1":"new_property_name",
                  "property2":true
                  }
                }
              }
            }

Настройка, убирающая из запроса системные атрибуты

let gosEkspRemPetNew = normalize(e.item, null, {skipSystemAttrs: true});

Авторизация по токену oauth2 в модуле SOAP

Аутентификация по парам логин-пароль и логин-токен по умолчанию применяется для всех сервисов. Для аутентификации soap-запросов добавляем в сообщение заголовок безопасности WSSecurity. Для аутентфиикации REST-сервисов добавляем стандартные заголовки HTTP-аутентифкации.

Настройка типа проверки - по паролю или токену (pwd/token) выполняется в deploy.json настройкой authMode в соответствующем модуле:

Пример

"soap": {
      "globals": {
        "authMode": {
          "petitionExperts": "none",
          "petitionEstimated": "none",
          "gosEkspContract": "none",
          "bankAccounts": "none",
          "resolution": "none"
        }

По умолчанию все сервисы аутентифицируются по паролю. Для генерации токена пользователя в админке реализована специальная форма. Настраиваем authMode для сервиса в token, переходим в админку, генерируем токен, используем его вместо пароля в заголовках.


iondv metrics

Copyright (c) 2018 LLC "ION DV".
All rights reserved.