Azure APIне разрешаю HTTPS более чем на одном API

Azure APIне разрешаю HTTPS более чем на одном API

Мы настроили APIm в Azure с 2 APi. Один из них — это служба SOAP, созданная из WSDL. У него есть одна операция POST, которая отлично работает с использованием HTTPS. Поскольку мы мигрируем в облако и хотим, чтобы миграция была максимально прозрачной для клиентов, у него также есть операция GET для предоставления WSDL клиентам. Это было установлено с помощью инструкций, найденных здесь:https://mbraekman.github.io/2020/05/24/Expose-WSDL-through-APIM/и работает просто отлично с использованием/soapAction=wsdlв операции GET.

Однако, чтобы ничего не менять на клиентах, нам нужно использовать альтернативный метод, который сохраняет URL-адрес на/мойсервер/api?wsdlвместо того, чтобы включать/?soapAction=wsdlпараметр.

В результате получается следующая настройка:

SOAP API имеет следующую конфигурацию:

  • Отображаемое имя:Отправить службу SOAP

  • URL-адрес веб-сервиса: https://my-apim.dev.azure.net/SubmitService/Submit.svc

  • Схема URL:HTTPS

  • Суффикс URL-адреса API:ОтправитьService/Отправить.svc

  • Операции:

    • ПОЧТА/?soapAction={любое}
    • ПОЛУЧАТЬ/?soapAction=wsdl

Для API WSDL:

  • Отображаемое имя:API для WSDL

  • URL-адрес веб-сервиса: https://my-apim.dev.azure.net/

  • Схема URL:HTTP(S)

  • Суффикс URL-адреса API:Нет (как они определяются в операциях)

  • Операции:

    • ПОЛУЧАТЬ/SubmitService/Submit.svc?singleWsdl
    • ПОЛУЧАТЬ/SubmitService/Submit.svc?wsdl

Проблема в том, что при посещении HTTPShttps://my-apim.azure-api.net/SubmitService/Submit.svc?singleWsdlили ?wsdl, возвращается ошибка 404 not-found. Однако, если перейти к версии HTTP, WSDL возвращается, как и ожидалось.

Если я изменю схему URL на «HTTPS» для API WSDL и нажму на URL https://, то это будет 404, если я попробую http://, то все еще 404. Единственное, что работает, это использование схемы URL «HTTP» или «HTTP(S)» и нажатие на URL http://. Я знаю, что технически это работает, но текущий URL использует https://, и мы хотим сохранить это.

Я подозреваю, что между двумя API и HTTP есть какая-то коллизия. Может, я что-то упускаю?

Я хочу иметь 2 API, оба использующие HTTPs

EDIT: Я провел еще несколько экспериментов, редактируя URL-адрес WebService, включая (как вы можете видеть в SOAP API) включение полного URL-адреса вURL-адрес веб-сервисасвойство, а также изменение URL-адресов/суффиксов таким образом, чтобы один из них былhttps://my-apim.dev.azure.net/SubmitServiceа другой -https://my-apim.dev.azure.net/SubmitService/Submit.svc

Чтоработаетпереименовывает их следующим образом:

https://my-apim.dev.azure.net/SubmitService/

и

https://my-apim.dev.azure.net/SubmitService2/

с соответствующими суффиксами

Но это не идеально, поскольку теперь это отдельный API/URL для клиентов, тогда как текущее локально размещенное решение таковым не является.

Связанный контент