azure - WSDL 的 Azure APIM 导入
问题描述
我正在尝试将 wsdl 导入 Azure APIM 并收到无法解析 wsdl 文件的错误,因此我没有 APIM 中操作的完整列表。如果我尝试通过应用服务 (SOAP API) 导入,我不会收到错误,但提供的列表也不是完整的操作列表。当我上传文件时,我确实收到了完整的操作列表(没有错误),但是当我尝试在门户中 APIM 的测试选项卡中进行测试时,没有提供任何输入参数。通过文件导入 wsdl 似乎是 3 中最成功的选项,但仍然返回错误。我以前导入过 wsdl,但我不记得遇到过这个问题。知道为什么会这样吗?
仅供参考...我可以使用 SOAPUI 直接测试 SOAP api,而无需使用 APIM。
解决方案
导入 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
推荐阅读
- html - 使用 HTML 和 CSS 实现基于索引的弹出窗口
- c++ - 尽管达到退出条件,但循环重复
- c++ - 如何通过构造函数调整私有 std::array 成员的大小?
- angular6 - 如何在 Angular 6 中的路由时动态更改 index.html 元数据?
- azure - 如何确定超出主机阈值的原因:Azure Functions 中的 [线程]
- jquery - 如何从 2 个按钮获取数据以区分按下了哪个按钮并在 jquery/html 中执行正确的代码?
- django - 使用 django-restframework-generics 时如何修复 TypeError
- r - 函数中的 dplyr 管道
- python - 如何使用不同的输入多次运行完全相同的功能并同时执行
- ios - 从 swift 4.0 webview 中删除上下文菜单