心理测试REST构架风格介绍的二:CRUD

转载自:Todd  Wei 
  http://www.cnblogs.com/weidagang2046/archive/2009/05/09/1453065.html

齐亦然节省咱们经过简单只例子初步体会了REST状态表述转移的寓意,但应有指出这片单例子还仅是概括的资源获得。REST是以资源也中心的,没有劳动的定义,这着实为丁怀疑REST能否如ORB或SOA一样支持复杂的用?在应这问题之前,让我们先行暂时离开REST,把意见转向基于关系数据库的3交汇构架。

心理测试 1

平凡业务逻辑层对外提供多少底效力接口(如图备受定义之IOrderService),对内通过数据访问层访问数据库。我们知道,关系数据库只定义了CRUD(Create,
Read, Update,
Delete)四种植标准的多少操作,分别对应为insert/select/update/delete四栽sql语句。经验告诉我们,关系数据库在多少张表上进展关联运算是得支持各种繁复工作逻辑的,因为具备工作功能最终都见面于射到数据库及的CRUD四栽标准操作。下面这个妙不可言之三角形能帮助我们了解是问题:

心理测试 2

图中之三角形分别表示:数据类型、操作、实例。可以将他们想象成可以调节的按钮,业务逻辑层的方法是:定义了少量之劳务实例,把大量的操作放在服务实例下面,形象地比喻为“一鼓小家,里面装了广大物”;而数据库的法尽管是供了大量数实例和CRUD四种标准操作,可比喻为“很多门户,每扇门里面装少量的物”。

以资源为中心之REST和坐数据吧主干的关系数据库是接近之。数据与资源本质上且是状态,对状态的操作CRUD少一个非常,多一个盈余。因此,REST也以CRUD四种植标准操作,分别对应于HTTP协议的POST/GET/PUT/DELETE方法。虽然HTTP协议支持POST/GET/PUT/DELETE以外的HEAD等方法,可以拿这些不标准方法作为中之续,但未应允影响REST模型的贞烈。上等同节约中,我们看来REST风格的行使像一个状态机;而这边我们虽然视它像一个数据库。按REST方式定义来之资源(Url)和对应的操作就比如下这个样子(值得反复的是,从Url的意思“统一资源一定相符”就可以看出其通用性,这也是REST资源表示的优势所于):

心理测试 3

REST完美地结合了HTTP协议,所以再次易无缝过渡抱互联网。另外,有人涉嫌 “一个网站对外暴露的网页数得用作衡量其吗互联网所开贡献的指标”,如果从夫角度来拘禁,以资源为主导之REST方式比服务啊核心的SOA对互联网越来越团结。但当下哪种风格的构架还是在应用本身的特征,一般来讲,对于因供和管制数据为主的,且想举行SEO的施用可REST风格,这包大部分WEB2.0之行使;而以计算和事情逻辑为主,且强调安全性的以不太符合REST风格。但承诺避免不加分析先抱为主的下面向服务之思考,有时候恰当运用状态表述转移模式之REST构架不但可以实现工作逻辑,而且具有双重好的伸缩性,正使达到一致节省谈到之思维测试服务和Google搜索一样。REST的值就是在为咱当统筹构架的时段多了相同种意见,所谓“眼界决定世界”。

Cache 

鉴于REST的Url表示资源与无状态服务特性,使得Cache机制变得稀简单,且HTTP协议中发生一直支持。服务器响应得以经cache-control:max-age,expires指定资源缓存时间;还足以于响应头的last-modified参数标明资源的最后修改时,客户端请求可以带来齐if-modified-since参数,如果资源不过,服务器就需要用返回304
not
modified状态即可,这样就避免了服务器端重复工作,也节约网络带来富;etag参数为是常用的cache控制参数,可以缓解last-modified时间精度不够的题目。另外,HTTP协议还针对Proxy机制有直接的支撑,与Cache机制结合,在急需高性能的用中,可以在服务器和客户端里部署若干特意用来Cache目的Caching
Proxy Server提高系统吞吐量。

总结 

最终总结一下REST的要点:1. Url象征资源;2.  CRUD操作;3. 态表述转移。至于无状态服务、Http状态码、Cache控制、Proxy等则属于地方几乎只中心的推断,理解REST的最主要还在理解为资源为着力的模子。本文是自己接触REST不至同样年工夫之局部体会和总,深知对REST的左右及动还索要后续着力,希望赢得高手的点拨!

相关链接 

1.《如何获得一盏咖啡——星巴克REST案例分析》

2.《深入浅出REST》 

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图