将WCF Service
转换为RESTful Service
需要更改哪些内容?
任何人都可以解释一下吗?
答案 0 :(得分:1)
您必须关注2个主要constraints:
答案 1 :(得分:1)
WCF支持各种不同的机制,用于处理将在HTTP请求/响应消息中传输的资源表示。您可以通过使用System.ServiceModel.Channels.Message定义方法签名来直接处理原始请求/响应消息,该签名允许您使用XML或JSON API来处理消息。
然而,大多数开发人员更喜欢使用自动在消息和.NET对象之间移动的序列化引擎,例如WCF DataContractSerializer
(默认值)或XmlSerializer
,它允许更高级的结构由DataContractSerializer
支持。
http://msdn.microsoft.com/en-us/library/dd203052.aspx
托管RESTful WCF服务时,需要配置两个关键组件才能在运行时中启用新的“Web”行为。首先,您需要公开使用RESTful服务的新绑定的端点 - WebHttpBinding
。然后,您需要使用WebHttpBehavior
配置“Web”端点。
<service name="BookmarkService">
<endpoint binding="webHttpBinding" contract="yourContractHere" />
</service>
绑定指示WCF不再使用SOAP,而是使用纯XML消息,而新行为根据[WebGet]
和[WebInvoke]
属性及其对应的UriTemplates
注入自定义调度逻辑。
[ServiceContract]
public partial class yourService
{
...
[WebInvoke(Method = "POST", RequestFormat=WebMessageFormat.Json,
UriTemplate = "service/url/here?format=json")]
[OperationContract]
void yourMethod(string newValue)
{
…