.Net& WCF - 如何创建REST而不是SOAP?

时间:2011-02-13 04:25:16

标签: .net json rest wcf

我创建了一些服务,但它们都是作为soap web服务运行并返回soap消息。

1-如何让我的wcf项目变得宁静而不是肥皂?

2-如何让所有服务返回并期望json而不是xml?

3 个答案:

答案 0 :(得分:5)

你至少需要做两件事:

  • 使用WebGetWebInvoke attribtue修饰您的操作合同(服务方法)并定义URI模板

  • 定义使用webHttpBinding和特定webHttp端点行为的服务端点

除此之外 - 您实际上不需要做任何事情来启动和运行REST服务。

请注意:这只是将您当前的SOAP方法“暴露”为REST - 这不是“正确的”REST编程风格。要做到这一点,您必须从一开始就将服务设计为RESTful。

SOAP通常使用消息和方法 - 例如GetCustomerGetBalance等等。

另一方面,REST在资源中认为 - 您有一个Customer资源,并且在该资源上发布HTTP GET URI检索客户,PUT将插入一个新客户, POST将更新现有客户,DELETE(所有HTTP谓词)将删除您的客户。因此,在适当的REST中,您没有考虑方法和过程 - 您正在考虑如何公开资源并将这些资源提供给您的服务的消费者。

答案 1 :(得分:1)

WCF REST / Json服务和客户端的另一个示例可以在my answer中找到问题“客户端配置以使用WCF JSON Web服务”

答案 2 :(得分:1)

专门讨论a detailed analysis of how to "JSON-enable" your WCF services的MSDN文档中有一个很棒的部分。我推荐它作为起点。

但在您阅读之前,我建议略读through the section on the WCF Web Http Programming Model,因为它构建了一些基本概念,这些概念对于理解稍后描述的WCF的JSON启用/ AJAX启用主题非常有用。

希望这有帮助!