我创建了一些服务,但它们都是作为soap web服务运行并返回soap消息。
1-如何让我的wcf项目变得宁静而不是肥皂?
2-如何让所有服务返回并期望json而不是xml?
答案 0 :(得分:5)
你至少需要做两件事:
使用WebGet
或WebInvoke
attribtue修饰您的操作合同(服务方法)并定义URI模板
定义使用webHttpBinding
和特定webHttp
端点行为的服务端点
除此之外 - 您实际上不需要做任何事情来启动和运行REST服务。
请注意:这只是将您当前的SOAP方法“暴露”为REST - 这不是“正确的”REST编程风格。要做到这一点,您必须从一开始就将服务设计为RESTful。
SOAP通常使用消息和方法 - 例如GetCustomer
,GetBalance
等等。
另一方面,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启用主题非常有用。
希望这有帮助!