随笔分类 -  REST

REST 架构风格
摘要:回顾一下在REST WCF 4.0中可以这样简单实现缓存:1、配置<caching><outputCacheSettings><outputCacheProfiles><addduration="20"name="outCache"varyByParam="none"/></outputCacheProfiles></outputCacheSettings>2、使用配置[OperationContract][WebGet(UriTemplate="/Ti 阅读全文
posted @ 2011-12-31 00:56 tyb1222 阅读(3680) 评论(0) 推荐(1) 编辑
摘要:在HTTP1.1规范中,新增了一个HTTP头信息:ETag。对Web开发者来说,它是一个非常重要的信息。它是用作缓存使 用的两个主要的头信息之一 (另一个是Expires)。除此之外,在REST架构中,它还可以用于控制并发操作(上节中已经大 致介绍AtomPub中控制并发的流程)。那么ETag是什么?它又几种类型?强ETag与弱ETag之间有什么区别。?如何计算 ETag值?它与Last-Modi... 阅读全文
posted @ 2011-12-24 12:10 tyb1222 阅读(27182) 评论(2) 推荐(1) 编辑
摘要:前一节介绍了一种IETF推荐的一种超媒体格式------Atom,这一节中主要Atom发布协议-------Atom Publish Protocol,简称AtomPub,有时更简洁写作APP。 开篇之前介绍几个重要概念先: 1、媒体类型 描述相关资源表述所使用的类型,如XML、JSON、JPG、MP3等、处理模型以及链接关系值 2、HTTP惯用语 它规范了如何对资源进行操作以及处理HTTP头信息和状态码 3、领域应用协议。 领域应用协议(Domain Application Protocol DAP),它为服务端与客户单的资源的交互定义了一套规范,如资源的媒体类型、链接关系... 阅读全文
posted @ 2011-12-21 16:07 tyb1222 阅读(5924) 评论(2) 推荐(0) 编辑
摘要:前面一节中讲述了REST架构风格中最核心本的要素之一:超媒体格式。虽然超媒体格式有很有用,如能被浏览器很好解析的HTML。但是HTML也不是万能的。如我们在AJAX应用中,使用JSON表述格式很显然比HTML要好。再者,我们为了实现某一特定领域而采用自定义的超媒体格式,如果消费者只需要处理表述中的一小部分,虽然我们可以通过获取资源的表述,然后过滤出我们需要处理的资源,但这显然不是一种好的方式。Atom社区所制定了一条深受欢迎的惯例。目录: 1、Atom简介 2、Atom1.0与RSS2.0 3、Atom中基本概念介绍 4、Atom中的链接关系 5、.Net FCL中对Atom的实... 阅读全文
posted @ 2011-12-16 13:21 tyb1222 阅读(6450) 评论(3) 推荐(2) 编辑
摘要:网上有许多介绍REST的资料,在这大部分资料中,基本都会介绍通过URI隧道技术与通用的连接器接口(也就是POST\GET\PUT\DELETE,即CRUD)对资源进行操作。 那么支持URI隧道技术与CRUD的服务就表明我们的服务就是REST风格的了吗。?事实上在Richardson成熟度模型中,URI隧道技术与HTTP出于第一级与第二级。如下图: 在他的最上层就是本节所叙述的超媒体(HyperMedia)。 本节目录:1、超媒体格式2、超媒体格式与POX比较3、如何处理超媒体4、标准超媒体格式 在REST中有一个很重要的约束,即统一接口。尤其是在接口制约在资源上的操作方法上。但是统... 阅读全文
posted @ 2011-12-13 18:07 tyb1222 阅读(8488) 评论(3) 推荐(0) 编辑
摘要:近来看了Jim Webber等REST实战,有一些体会,因此对一些概念做个简要的整理。以下是个人认识与理解,如有偏差,望指正。1、URI隧道技术。 通过URI来进行跨越系统边界转移信息的一种方式。它是通过将信息编码到URI中。如:http://www.taobao.com/PlaceOrder?size={xx}&type={xx}&color={xx}这是一种有效的方法。因为无论在Server端还是Client端,它都容易被理解。但是在一般情况下,URI隧道技术并非是Web友好的。因为它没有描述对资源进行操作的方式、以及操作资源时使用的元数据。如果有消费者使用Get操作来操作 阅读全文
posted @ 2011-12-06 16:10 tyb1222 阅读(3834) 评论(6) 推荐(3) 编辑
摘要:作为一种以HTTP协议为基础的WCF 服务,只要客户端能模拟进行HTTP请求,都能成为服务的消费者。之前写过《对Jquery+JSON+WebService的一点认识》,觉得在REST是基于HTTP协议的,AJAX的操作也应该一样。但是事实上还是有些差别的。由于网上资源聊聊无几,因此记录下自己的个人体会。希望对你有些帮助! 本篇主要讲述的类容为在ASP.NET中,如何通过AJAX来消费REST服务。 使用JQUERY框架模拟AJAX请求时,操作类型主要有GET、POST两种。本节也以这两种常用的方式来进行介绍。(type (String) : (默认: "GET") 请求方 阅读全文
posted @ 2011-11-25 19:39 tyb1222 阅读(8305) 评论(21) 推荐(12) 编辑
摘要:我们知道,在HTTP协议的报文头Header中存放着许多信息。如果你读过老A的《通过添加HTTP Header实现上下文数据在WCF的自动传递》,那你一定知道如何通过底层的扩展来实现如何在REST WCF中使用HTTP Header来进行数据交互。这对于大家更多的了解WCF的底层机制有很大的帮助作用。 窃以为:在实际的REST WC应用中,想通过Header头来实现数据交互不用那么麻烦。MicroSoft在它所提供的库中就已经为我们封装好了一些接口,可以很容易的让我们实现这一功能。 HTTP Header报文头可以在Server与Client之间传递很多数据。我们可以获取这些数据然后进... 阅读全文
posted @ 2011-11-23 18:42 tyb1222 阅读(7933) 评论(8) 推荐(4) 编辑
摘要:上节介绍了REST WCF 4.0相比3.5支持更多的交互格式,本篇就说说在Server与Client间通过最原始的流的格式进行通讯。开篇之前,介绍REST WCF 的一个特性:DescriptionAttribute。对这个特性相信都很熟悉,它的作用如同在WebService中通过它来标注出某个接口的描述信息,在REST WCF中同样如此。将它标注在REST WCF 接口中后,在help页面中将会显示接口的描述信息。 如以往,本篇将通过Demo的形式介绍如何在REST WCF中使用Stream。Demo的功能有以下几点: 1、通过Stream的形式获取服务端的图片资源,并保存到本地 ... 阅读全文
posted @ 2011-11-18 19:08 tyb1222 阅读(5322) 评论(7) 推荐(4) 编辑
摘要:前面几节介绍了REST WCF 3.5的一些基本特性以及使用方式,在WCF4.0的时代,也做了对REST的支持。相比3.5时代,4.0改进体现有如下几点:增加对路由的支持对缓存的支持。帮助(help)页面的改进。消息错误处理消息格式的多样性如(XML\JSON\ATOM\TEXT\BINARY)简化操作。 本节讲述的重点为如何使用路由注册REST服务、缓存以及help页面 1、使用路由注册服务。 WCF4.0中新增的路由服务可以帮助直接注册服务,而不再需要SVC的文件。 需要注意的是,使用路由注册服务时必须启动ASP.NET的兼容模式。即设置aspNetCompatibilityE... 阅读全文
posted @ 2011-11-16 17:35 tyb1222 阅读(2760) 评论(2) 推荐(1) 编辑
摘要:这几天思考REST 架构下POST复杂数据类型的问题查了写资料,以及通过与WCF 大牛------Frank Xulei进行了一番交流对REST有了一些进一步的认识。本篇作为:1、REST与SOA两种架构下WCF的异同比较 2、通过HTTP协议标准动作使用REST WCF 服务这两篇的一个补充。 起因是这样的:在SOA架构下,一般都是通过定义服务契约的方式最终通过WSDL将元数据对外发布,以供调用者使用。也就是说在SOA中,通过服务契约定义向外公布服务对外提供的操作。如果先学习SOA,然后接触REST,可能会在使用REST的时候会沿用SOA下的一些习惯。我在进行REST架构下的WCF学... 阅读全文
posted @ 2011-11-09 20:47 tyb1222 阅读(1842) 评论(0) 推荐(4) 编辑
摘要:Fiddler是一款强大的软件,在实际的开发中它能帮助我们跟踪HTTP请求,记录发送请求和获取到请求结果的数据。使用VS2008的时候,一直是用IE6浏览调试,使用Fiddler也正常。但本人一直习惯用FireFox,可怜用它访问的时Fiddler却不能帮助记录下数据(FireFox版本:4.0)。还以为Fiddle只能在IE下使用,试了试chrome,发现也可以用。言归正卷,本篇针对上篇中的REST服务(具体例子以及带代码采用上节中介绍的:通过HTTP协议标准动作使用REST WCF 服务)使用Fiddler简要做一个介绍。首先大致说说Fiddler的界面,如图: ... 阅读全文
posted @ 2011-11-07 18:23 tyb1222 阅读(4532) 评论(3) 推荐(2) 编辑
摘要:前几节介绍了REST WCF 服务的一些基本的特点,本节说明一下,如何基于HTTP的标准动作来使用REST WCF 服务。由于RESTful服务的架构风格基于HTTP协议,并且其设计原则中明确指出:通过通用的连接器接口来使用资源。对于REST架构风格的服务,主要通过它8个动作中的4个来使用资源,即:GET,POST,PUT,DELETE。 在RESTful 服务中,GET,POST,PUT,DELETE的标准操作如下: GET:获取资源 POST:修改资源 PUT:创建资源 DELETE:删除资源本节涉及的要点如下:1、如何定义接口规范,使客户端通过能通过HTTP协议的标准动作来... 阅读全文
posted @ 2011-11-02 18:25 tyb1222 阅读(2701) 评论(3) 推荐(3) 编辑
摘要:如同SOA下的WCF,REST架构下的WCF也有多种多样的寄宿方式,如IIS寄宿,自寄宿等等,即使它只有一种协议。由于REST基于HTTP协议的特点,所以这种架构下的WCF寄宿时,需要有Web服务器的支持。那么很显然,微软肯定会使用自己的Web服务器IIS了。本节目录:1、IIS寄宿2、控制台程序寄宿(暂且将它称为自寄宿)当然,REST WCF还有其他的寄宿方式,我这里只挑出典型的两种给大家介绍。有兴趣的朋友不妨试试其他的寄宿方式。本节中所使用的实例还是上节所使用的例子。Demo结构图如下:结构说明:Client为服务消费者,Contracts定义服务契约、数据契约,Services定义服.. 阅读全文
posted @ 2011-10-28 15:50 tyb1222 阅读(3157) 评论(7) 推荐(2) 编辑
摘要:REST(Representational State Transfer)与SOA(Service-Oriented Architecture)作为当今软件架构中主流的两种架构思想在当前开发过程中已经越来越流行。作为微软.NET平台下的下一代通讯技术,WCF也很好的体现了对他们的支持。那么他们到底有哪些差别又有哪些相同之处呢。?本篇将针对这个问题谈谈自己的认识,并通过Demo演示程序。本篇设计的内容如下: 1、REST的特性 2、SOA的特征 3、REST与SOA的共同点 4、REST与SOA的不同点 5、Demo程序说明*REST的特性。首先给出一张图:它基于HTTP协议,是一... 阅读全文
posted @ 2011-10-27 17:19 tyb1222 阅读(5326) 评论(10) 推荐(6) 编辑
摘要:REST(Representational State Transfer)作为一种优秀的架构风格,自诞生以来越来越受广大开发者的青睐。对没有接触过REST的开发人员,可以参阅本人的上一篇博客:对REST架构的理解及Jquery+JSON+RESTful WCF。由于REST推崇的简易型,以及基于HTTP协议的特点,它又有一些什么样的特性呢。?本问将围绕这个主题分两部分展开,并结合Demo程序加以介绍。第一部分介绍涉及到的知识点,第二部分介绍Demo。 主要涉及到的知识点如下: 1、绑定协议与行为(webHttpBinding 与webHttpBehavior) 2、Action的定义... 阅读全文
posted @ 2011-10-26 11:21 tyb1222 阅读(3393) 评论(4) 推荐(4) 编辑
摘要:最近看了一些REST架构风格的介绍,谈谈自己对REST的理解总结一下自己的认识。本文只最为个人阶段性的成果,供对REST开发有兴趣的童鞋参考。若有理解有误的地方恳请大侠指教。 REST看了好多天了,自己也写了一些DEMO程序加深了对他的理解。晚上突然发现还有个微软之前还发布过一个插件名称(WCF REST Starter Kit Preview 2.msi,下载地址:http://aspnet.codeplex.com/releases/view/24644),供给大家使用。供作为个人第一篇介绍REST风格的WCF文章,本文就从这个插件的最基本的使用说起。 本文分为两个部分: 1、R... 阅读全文
posted @ 2011-10-24 02:50 tyb1222 阅读(13089) 评论(15) 推荐(5) 编辑