【问题标题】:Expose REST API as SOAP via Azure API Management通过 Azure API 管理将 REST API 公开为 SOAP
【发布时间】:2018-10-11 22:14:31
【问题描述】:

我们有一套现有的 REST API (.NET Core)。我们需要将这些 API 公开为 SOAP 服务,希望通过使用 Azure API 管理。这可能吗?

我已经看到很多关于将 SOAP 服务公开为 REST API 的帖子,但反之则不然。

【问题讨论】:

    标签: azure azure-api-management


    【解决方案1】:

    当您在 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; }
    }
    
    • 您可以尝试在野外找到一些 WSDL,并将它们作为 SOAP 导入到 APIM 中的 REST,以查看创建了什么样的策略来将 XML 转换为 JSON 以获取响应以及将 JSON 转换为 XML 以获取请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-13
      • 1970-01-01
      • 2016-01-22
      • 2021-11-03
      相关资源
      最近更新 更多