0
votes

I'm using the Azure API Management DevOps resource kit to generate arm templates to use in a DevOps pipeline to configure my API management instances

https://github.com/Azure/azure-api-management-devops-resource-kit

This works well for APIs with a swagger definition but I have one WSDL that I also want to automate using the same process. There doesn't appear to be great documentation around on how to do this with a WSDL file as opposed to a swagger file

I know as part of the config.yml file that the creator uses you can specify type: soap but it still requires you to point to an open API spec file

enter image description here

Can this process be carried out with a WSDL file?

1

1 Answers

0
votes

You could try to host the WSDL somewhere and reference it from there. Otherwise it can be easily imported. https://docs.microsoft.com/en-us/azure/api-management/import-soap-api

https://docs.microsoft.com/en-us/biztalk/core/connect-to-azure-api-management

However, if you are importing an API, you might come across some restrictions or identify issues that need to be rectified before you can successfully perform the import.

For WSDL below are the points we need :

  • WSDL files are used to create SOAP pass-through and SOAP-to-REST APIs.
  • SOAP bindings -Only SOAP bindings of style ”document” and “literal” encoding are supported. There is no support for “rpc” style or SOAP-Encoding. WSDL:Import - This attribute isn't supported. Customers should merge the imports into one document.
  • Messages with multiple parts - These types of messages aren't supported. WCF wsHttpBinding - SOAP services created with Windows Communication Foundation should use basicHttpBinding - wsHttpBinding isn't supported.
  • MTOM - Services using MTOM may work. Official support isn't offered at this time. Recursion - Types that are defined recursively (for example, refer to an array of themselves) are not supported by APIM.
  • Multiple Namespaces - Multiple namespaces can be used in a schema, but only the target namespace can be used to define message parts. Namespaces other than the target, which are used to define other input or output elements, are not preserved. Although such a WSDL document can be imported, on export all message parts will have the target namespace of the WSDL.

For more info, follow this :

https://docs.microsoft.com/en-us/azure/api-management/api-management-api-import-restrictions