REST 架构风格下的WCF特性简介

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 18:59 点击:

REST(Representational State Transfer)作为一种优秀的架构风格,自诞生以来越来越受广大开发者的青睐。对没有接触过REST的开发人员,可以参阅本人的上一篇博客:对REST架构的理解及Jquery+JSON+RESTful WCF 。

 

由于REST推崇的简易型,以及基于HTTP协议的特点,它又有一些什么样的特性呢。?本问将围绕这个主题分两部分展开,并结合Demo程序加以介绍。第一部分介绍涉及到的知识点,第二部分介绍Demo。


  主要涉及到的知识点如下:
  1、绑定协议与行为(webHttpBinding 与webHttpBehavior)
  2、Action的定义(POST、GET、DELETE、PUT)
  3、URI(Uniform Resource Identifier)的指定
  4、webServiceHost与webServiceHostFactory

*1、绑定协议与行为(webHttpBinding 与webHttpBehavior)
众所周知,WCF中支持的协议有很多,如wsHttpBinding等ws-*系列的、netTcpBinding、支持MSMQ的系列协议等。在构建REST架构风格的WCF中
我们使用的协议为webHttpBinding 。与之相对应的行为则是webHttpBehavior。

MSDN对他们的的描述分别为:
webHttpBinding:一个绑定,可用于为通过 HTTP 请求(而不是 SOAP 消息)公开的 Windows Communication Foundation (WCF) Web 服务配置终结点。
webHttpBehavior:启用 Windows Communication Foundation (WCF) 服务的 Web 编程模型。
WebHttpBehavior 行为与 WebHttpBinding 绑定一起使用时,支持 WCF 公开和访问 Web 样式服务。WebServiceHost 会自动将此行为添加到使用 WebHttpBinding 的终结点。
webHttpBinding作为REST 架构风格下的WCF 所使用的协议,它和其他协议一样通知WCF如何为通讯建立通道堆栈,也就是建立相应的Channel以用于
通讯。webHttpBehavior的作用是为REST WCF的端点提供行为的配置,它决定了WebHttpDispatchOperationSelector如何决定选择何种路由方式
来访问资源。
*2、Action中的各个动词决定了对资源进行何种操作。
POST:对客户端知晓的资源进行添加。它是WebInvokeAttribute默认的操作动作
Get:对资源进行获取。它是WebGetAttribute默认的操作动作
DELETE:对资源进行删除。一般由WebInvokeAttribute指定
PUT:对资源进行添加或者修改。一般由WebInvokeAttribute指定

*3、URI
URI(Uniform Resource Identifier)的指定是通过REST WCF编程模型中的WebGetAttribute、 WebInvokeAttribute两种特性来标识的。它通过将
WebGetAttribute、 WebInvokeAttribute两种特性的UriTemplate属性指定。通常将它指定在服务契约对应的接口上,WebHttpDispathOperationSelector通过URI来决定
对资源进行操作。示例定义如下:
[OperationContract]
[WebGet(UriTemplate = "/")]
List<LogEntity> GetAll();

*4、webServiceHost与webServiceHostFactory
对WCF有些了解的人都知道,它的配置是比较复杂的。REST所推崇的是简易型,因此在REST WCF编程模型中,MS推出了webServiceHost
与webServiceHostFactory来简化我们的配置。webServiceHost继承自ServiceHost,使用它,我们将不再需要对webHttpBinding与
webHttpBehavior进行配置,webServiceHost会自动创建端点,并使用webHttpBinding与webHttpBehavior对其进行配置。
MSDN中对webServiceHost的说明如下:
如果 WebServiceHost 在服务说明中找不到终结点,则它将在服务的基址中自动为 HTTP 和 HTTPS 基址创建一个默认终结点。如果用户已在基址中明确配置
终结点,则它不会自动创建终结点。WebServiceHost 会自动配置终结点的绑定,以便在安全虚拟目录中使用时与关联的 Internet 信息服务 (IIS) 安全设置一起使用。
当创建默认 HTTP 终结点时,WebServiceHost 同时禁用 HTTP 帮助页和 Web 服务描述语言 (WSDL) GET 功能,以使元数据终结点不干扰默认 HTTP 终结点。
此外,WebServiceHost 类会将 WebHttpBehavior 添加到所有没有该行为但具有 WebMessageEncodingElement 的终结点中。如果服务上的所有操作都具
有空的 HTTP 请求正文,或者都将 HTTP 请求正文以流的形式处理,则 WebServiceHost 会自动为绑定配置适当的内容类型映射器。
请注意:它会禁用REST WCF中的帮助(help)页面。
WebServiceHo

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • 浅析.NET下XML数据访问新机制
      • asp.net 面试+笔试题目第1/2页
      • C# 邮件地址是否合法的验证
      • asp.net 设置GridView的选中行的实现代码
      • C#高级编程:数据库连接[1]
      • 经典C++程序1
      • IIS 自动回收导致后台定时器失效的问题解决
      • ASP.NET&#160;GridView列表代码示例
      • Asp.net MVC源码分析--Action Filter的链式调用
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1