Skip to main content
 首页 » 编程设计

c#之将 asmx SOAP web 服务转换为 ASP.NET 上的 REST : is WCF really useful for just that

2024年02月03日26lexus

为什么不直接在配置中添加 http get 支持,这样做的好处是该服务将同时支持 SOAP 和 REST?

关于休息的所有讨论是什么? WCF 将为此带来什么?

我的意思是,如果我只是在我的 web.config 中为我的 asmx web 服务设置能够接受类似 get rest 的语法,那么从 REST 客户端应用程序的角度有什么区别

  <webServices> 
    <protocols> 
      <add name="HttpGet" /> 
    </protocols> 
  </webServices> 

和 WCF REST 实现 http://geekswithblogs.net/.NETonMyMind/archive/2008/02/04/119291.aspx ?

似乎没有人能真正回答...是因为它很难还是我的问题很愚蠢 :)

客户端只能看到url(封装原理),我何必多此一举呢?还有什么还不清楚:)

其他问题:如果我们切换到 WCF,是否需要更改 url?如果是,那意味着我们所有的一百个合作伙伴客户都将崩溃,我必须将我们的更改通知他们?

请您参考如下方法:

WCF 与 REST 无关。您可以在不使用 WCF 和 SOAP 的情况下构建自己的 REST 服务。查看此示例 REST 服务构建 .Net 2.0

并查看优秀的.Net open source REST implementation

要了解有关 REST 的更多信息,请阅读这些内容

  1. http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
  2. http://en.wikipedia.org/wiki/Representational_State_Transfer
  3. What exactly is RESTful programming?
  4. REST / SOAP endpoints for a WCF service
  5. Understanding REST: Verbs, error codes, and authentication

您的评论:

if I have already an asmx webservice that can be converted to REST just in one line of configuration file ?

ASMX 服务建立在 SOAP 之上,比 HTTP 多一层。 REST 只是基于 HTTP,您可以像访问普通 URL 一样访问(或调用)您的业务资源。没有更多的抽象。

在 REST 中,资源由持久标识符 (URL) 标识。

例如,在产品目录系统中,通过使用 asmx,您可以创建一组函数来添加、更新、删除产品。如 addProduct()、updateProduct 等。

但是在 REST 中,您将拥有单点访问,例如 http:\我的系统\产品。要检索、添加、更新、删除产品,您将在同一 URL 上使用相应的 HTTP 动词(GET、POST、PUT、DELETE)。

所以您不能只将 asmx 转换为 REST,因为两者解决问题的方式不同。