WSDL 的 Azure APIM 导入

标签 azure soap wsdl azure-api-management

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

仅供引用...我可以使用 SOAPUI 直接测试 SOAP api,而不使用 APIM。

最佳答案

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

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

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

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

有关更多信息,请按照以下步骤操作:

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

关于WSDL 的 Azure APIM 导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64653682/

相关文章:

Azure 应用服务 : assembly specified in application dependencies manifest (Microsoft. AspNetCore.AzureAppServices.HostingStartup.deps.json)未找到

node.js - 在POST请求 header 中将Transfer-Encoding设置为分块时,Azure函数(Node.js)返回502错误

python - 编辑 Azure Python 代码以清理语音转文本输出

serialization - 序列化 PHP SOAPClient 对象

php - PHP 5.6 中的 SoapClient 在使用 HTTPS 时发出带有 "key values mismatch"的警告

java - Pentaho Web 服务查找无法加载我的 wsdl

azure - 静默获取 token 失败。调用 AcquireToken azure 部署方法

java - 从 XQ 中的 SOAP 请求中删除命名空间

java - 从 WSDL 链接 java 访问 Web 服务

clojure - 在 Clojure 中使用 WSDL