Azure Функция v1 как SOAP конечная точка - PullRequest
0 голосов
/ 28 мая 2020

У меня есть приложение-функция azure (v1, к сожалению, без возможности обновления) с конечной точкой, получающей JSON через запросы POST, выполняющей некоторые вычисления и возвращающей JSON в ответе. Эта конечная точка должна быть SOAP -совместимой, что означает, что она должна получать SOAP запросов и возвращать SOAP ответов, а также иметь возможность предоставлять файл WSDL.

Использование сопоставителя SOAP в API Management не является вариантом из-за его ограничений.

Методы, которые я пробовал:

  1. Создайте службу WCF и попробуйте делегировать ей HTTP-запрос из конечной точки функции Azure. Похоже, это не сработало, потому что соответствующий обработчик в WCF может получать запрос только через свою собственную конечную точку HTTP (которая, похоже, не отображается через конечную точку функции azure), но не может быть вызвана из кода.

  2. Используйте веб-приложение ASP. net с SoapCore в качестве отправной точки и попробуйте перенести его на функцию azure. Это не представляется возможным из-за совершенно другой структуры. SoapCore прикреплен к экземпляру приложения ASP. net в качестве промежуточного программного обеспечения, тогда как функция azure не предоставляет средств для использования промежуточного программного обеспечения.

  3. Анализируйте запрос SOAP вручную преобразуйте его в JSON, выполните вычисление, преобразуйте результат обратно в сообщение SOAP и верните его. Это кажется очень хакерским, а также WSDL необходимо создавать и обслуживать вручную. Несмотря на эти недостатки, я склоняюсь к этому решению из-за невозможности первых двух.

Есть ли другое возможное решение, которое я мог пропустить?

1 Ответ

0 голосов
/ 28 мая 2020

Если вы используете Azure Управление API, то работает вариант ниже;

Вы можете писать политики преобразования на уровне службы или конечной точки - от JSON до SOAP см .: https://docs.microsoft.com/en-us/azure/api-management/api-management-transformation-policies#convert - json -to- soap -using-a-liquid-template

Также см. Эту ссылку Выставить REST API как SOAP через Azure Управление API помогло бы.

...