Коротко о проблеме
Мне нужно интегрировать мобильное гибридное приложение, которое, вероятно, будет основано на Ioni c и должно будет (косвенно) потреблять некоторое количество SOAP веб-сервисы. Мне бы хотелось, чтобы клиент Typescript мобильного приложения знал о bean-компонентах, определяемых файлами XSD и WSDL, описывающими веб-службы.
Некоторые дополнительные пояснения
В В следующих пояснениях я буду ссылаться на следующие объекты в решении:
- клиент Typescript мобильного приложения [A]
- приложение Java на стороне сервера, выделенное для мобильных устройств [B]
- удаленные SOAP веб-службы, которые предоставляют бизнес-функции [C]
Действуют следующие ограничения:
- клиент мобильного приложения [A] будет связываться через вызовы REST с выделенным приложением на стороне сервера [B]
- , выделенное приложение на стороне сервера [B] будет разработано в Java, выделенное приложение на стороне сервера [B] будет позаботиться о потреблении существующих веб-сервисов [C], следовательно, выступая в качестве слоя интеграции между клиентом приложения Typescript [A] и SOAP веб-сервисами [C]
- SOAP веб-сервисами [C] описывается рядом файлов WSDL, поддерживаемых некоторыми файлами XSD, бэкэнд-команда не желает переписывать свою документацию на что-либо, кроме WSDL и XSD
Допустим, некоторые запросы и ответы используемые веб-сервисами [C] включают следующий Java объект
public class MyElement {
private ElementColor color;
}
, где ElementColor - это перечисление Java, например
public enum ElementColor {
RED,
GREEN,
BLUE,
}
Эти объекты Java определены в файлах WSDL и XSD, следовательно, мы можем создать файл JAR, импортировать его в приложение на стороне сервера [B], и поэтому наше приложение на стороне сервера [B] будет знать о возможных значениях, которые имеет свойство «color» можно предположить в классе MyElement. Все хорошо.
Моя проблема в том, что мобильный клиент Typescript [A] не импортирует файл JAR (очевидно), следовательно, когда разработчику на стороне клиента придется написать запрос или проанализировать ответ, который включает в себя MyElement объект он либо
- будет обрабатывать поле "color" как строку (но затем он может записать в него любое значение, а не только действительные "RED", "GREEN" и "BLUE" значения)
- определяют перечисление Typescript, имитирующее перечисление ElementColor Java.
Второй вариант более чистый, но все же не сильно привязанный к фактическим моделям, определенным в WSDL и XSD файлы, т. е. разработчик на стороне клиента все еще может добавить значение «ЖЕЛТЫЙ» в свое перечисление Typescript и отправить его в бэкэнд.
Я хотел бы автоматически импортировать / наследовать в моем коде Typescript на основе моделей определяется файлами WSDL и XSD или отображениями Typescript классов Java, сгенерированных из тех же файлов WSDL и XSD. Помните, что этого недостаточно для извлечения Мы работаем с этими объектами во время выполнения (я мог бы написать сервис, который их создает), потому что разработчик на стороне клиента все равно не сможет их увидеть при разработке.
Заранее благодарю за помощь.