【发布时间】:2018-10-11 22:14:31
【问题描述】:
我们有一套现有的 REST API (.NET Core)。我们需要将这些 API 公开为 SOAP 服务,希望通过使用 Azure API 管理。这可能吗?
我已经看到很多关于将 SOAP 服务公开为 REST API 的帖子,但反之则不然。
【问题讨论】:
标签: azure azure-api-management
我们有一套现有的 REST API (.NET Core)。我们需要将这些 API 公开为 SOAP 服务,希望通过使用 Azure API 管理。这可能吗?
我已经看到很多关于将 SOAP 服务公开为 REST API 的帖子,但反之则不然。
【问题讨论】:
标签: azure azure-api-management
当您在 APIM 中将 SOAP API 作为 REST 时,它所做的只是为操作创建一系列策略以动态处理请求/响应负载并将 JSON 转换为 XML。即使没有向导可以创建反向转换 - 这肯定是可能的。
您必须使用 APIM 策略编写自己的转换逻辑。以下是您需要的一些东西:
public enum SoapVersionLiteral { Soap11, Soap12 } public interface ISoapMessage { SoapVersionLiteral Version { get; set; } string Action { get; set; } IEnumerable<ISoapHeader> Headers { get; set; } ISoapBody Body { get; set; } } public interface ISoapHeader { XName Name { get; } string Value { get; } Uri Actor { get; } bool MustUnderstand { get; } } public interface ISoapBody { XName Name { get; } XElement Contents { get; } }
【讨论】: