这使得wcf服务成为RESTful服务

时间:2014-11-25 04:20:09

标签: .net web-services wcf rest service

WCF Service转换为RESTful Service需要更改哪些内容? 任何人都可以解释一下吗?

2 个答案:

答案 0 :(得分:1)

您必须关注2个主要constraints

  • 统一接口(使用标准 - 如HTTP,IRI,URI模板,超媒体格式,MIME类型等...来描述客户端和服务之间的合同)
  • 无国籍(无服务器端会话)

答案 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)
    {
    …

http://msdn.microsoft.com/en-us/magazine/dd315413.aspx