首页 > 解决方案 > WSDL 的 Azure APIM 导入

问题描述

我正在尝试将 wsdl 导入 Azure APIM 并收到无法解析 wsdl 文件的错误,因此我没有 APIM 中操作的完整列表。如果我尝试通过应用服务 (SOAP API) 导入,我不会收到错误,但提供的列表也不是完整的操作列表。当我上传文件时,我确实收到了完整的操作列表(没有错误),但是当我尝试在门户中 APIM 的测试选项卡中进行测试时,没有提供任何输入参数。通过文件导入 wsdl 似乎是 3 中最成功的选项,但仍然返回错误。我以前导入过 wsdl,但我不记得遇到过这个问题。知道为什么会这样吗?

仅供参考...我可以使用 SOAPUI 直接测试 SOAP api,而无需使用 APIM。

标签: azuresoapwsdlazure-api-management

解决方案


导入 API 时,您可能会遇到一些限制或发现需要纠正的问题,然后才能成功执行导入。

对于 WSDL,我们需要以下几点:

WSDL 文件用于创建 SOAP 传递和 SOAP-to-REST API。

  • SOAP 绑定 - 仅支持样式“文档”和“文字”编码的 SOAP 绑定。不支持“rpc”样式或 SOAP 编码。
  • WSDL:Import - 不支持此属性。客户应将导入合并到一个文档中。
  • 包含多个部分的消息 - 不支持这些类型的消息。
  • WCF wsHttpBinding - 使用 Windows Communication Foundation 创建的 SOAP 服务应使用 basicHttpBinding - 不支持 wsHttpBinding。
  • MTOM - 使用 MTOM 的服务可能会起作用。目前不提供官方支持。
  • 递归 - APIM 不支持递归定义的类型(例如,引用自身的数组)。
  • 多个命名空间 - 一个模式中可以使用多个命名空间,但只能使用目标命名空间来定义消息部分。用于定义其他输入或输出元素的目标以外的命名空间不会被保留。尽管可以导入这样的 WSDL 文档,但在导出时,所有消息部分都将具有 WSDL 的目标名称空间。

有关更多信息,请按照以下方式操作:

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


推荐阅读