Назад: Модули
NB. Soap модуль не поддерживает GET запросы к сервисам. Отчасти оттого, что в теле запроса передаётся SOAP-запрос, а у GET-запроса тела нет (если можно так выразиться). По этой причине нужно отправлять POST запрос.
Это можно сделать с помощью утилиты SOAP-UI (можно и в браузере, но в теле запроса нужно писать SOAP-запрос, который на основе WSDL и достаточно громоздкий).
Опция 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});
Аутентификация по парам логин-пароль и логин-токен по умолчанию применяется для всех сервисов. Для аутентификации soap-запросов добавляем в сообщение заголовок безопасности WSSecurity
. Для аутентфиикации REST-сервисов добавляем стандартные заголовки HTTP-аутентифкации
.
Настройка типа проверки - по паролю или токену (pwd/token) выполняется в deploy.json настройкой authMode
в соответствующем модуле:
"soap": {
"globals": {
"authMode": {
"petitionExperts": "none",
"petitionEstimated": "none",
"gosEkspContract": "none",
"bankAccounts": "none",
"resolution": "none"
}
По умолчанию все сервисы аутентифицируются по паролю. Для генерации токена пользователя в админке реализована специальная форма. Настраиваем authMode
для сервиса в token, переходим в админку, генерируем токен, используем его вместо пароля в заголовках.
Copyright (c) 2018 LLC "ION DV".
All rights reserved.