在现有 .asmx Web 服务上创建 Web.API 层?

Create Web.API Layer over existing .asmx web services?

我们有许多现有的 asmx Web 服务,即使不是所有客户,也有很多客户在使用这些服务。这些不会很快被大量重写。

因此,我的简单问题是创建一个新的 web.api 层是否有意义,该层在需要时调用现有的 Web 服务(直到它们被重写)并且新方法可以在没有 "legacy" 肥皂服务。这最终意味着,在现有 Web 服务被重写/移植到 web.api 之前,我们将有效地拥有两个接口。

我知道事情通常朝着 REST 方向发展,因此对于未来的项目,与 web.api 互动不失为一个好方法。 Scott Hanselman 之前曾说过 "if In doubt add another layer of abstraction",但我不相信他是认真的 :)

这里的问题是基于 SOAP 的方法 API 不太可能映射到更面向资源的 REST 设计 API。

此外,从性能的角度来看,如果将 Web 服务外观置于 Web 服务之上,您最终会得到一些非常笨重的东西。

REST 越来越受欢迎,但假设一切都在朝那个方向发展是不正确的。恕我直言,有时 SOAP 契约定义的结构化交换非常有用 API。

我当然不会费心包装现有的 SOAP 接口来创建人造 REST。