0

We have setup an APIm in Azure with 2 APis. One is a SOAP service that was created from a WSDL. It has a single POST operation which operates just fine using HTTPS. Since we are migrating to cloud and want to keep the migration mostly transparent to clients, it also has a GET operation for exposing the WSDL to clients. This was established using the instructions found here: https://mbraekman.github.io/2020/05/24/Expose-WSDL-through-APIM/ and works just fine using the /soapAction=wsdl in the GET operation.

However, in the name of not changing things on clients, we need to use the alternative method, which keeps the URL at /myserver/api?wsdl instead of having to include the /?soapAction=wsdl parameter.

This results in the following setup:

SOAP API has the following configuration:

For the WSDL API:

  • Display Name: API For WSDLs

  • WebService URL: https://my-apim.dev.azure.net/

  • URL Scheme: HTTP(S)

  • API URL Suffix: None (as they get defined in the operations)

  • Operations:

    • GET /SubmitService/Submit.svc?singleWsdl
    • GET /SubmitService/Submit.svc?wsdl

The problem is, that when visiting the HTTPS https://my-apim.azure-api.net/SubmitService/Submit.svc?singleWsdl or ?wsdl, there is a 404 not-found error returned. However, going to the HTTP version, the WSDL is returned as expected.

If I change the URL Scheme to "HTTPS" for the WSDL API, and hit the https:// url, it's 404, if I try http:// still 404. The only thing that works is using a URL Scheme of "HTTP" or "HTTP(S)" and hitting the http:// url. I know this technically works, but the current URL is using https:// and we want to keep it that way.

I suspect there is some kind of collision between the 2 APIs and HTTPs, is there something I'm missing here?

I want to have the 2 APIs, both using HTTPs

EDIT: I did some more experimentation through editing of the WebService URL, including (as you can see in the SOAP API) including the full URL in the WebService Url property as well as changing the URLs/suffixes so that one of them is https://my-apim.dev.azure.net/SubmitService and the other is https://my-apim.dev.azure.net/SubmitService/Submit.svc

What does work is renaming the two like so:

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

and

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

with the respective Suffixes

But this is not ideal, as it is now a separate API/URL for clients, where the current on-prem hosted solution, it is not.

0

You must log in to answer this question.

Browse other questions tagged .