我们有一套现有的REST API(.NET Core)。我们希望将这些API公开为SOAP服务,希望使用Azure API管理。这可能吗?
我已经看到很多关于将SOAP服务公开为REST API的文章,但并非相反。
答案 0 :(得分:0)
当您将SOAP API作为APIM中的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; } }