REST构架风格介绍之二:CRUD

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

上一节咱们经过多少个例子初阶体会了REST状态表述转移的含意,但应有提议这六个例证还只是是大概的资源拿到。REST是以资源为主导的,没有服务的概念,这实在令人怀疑REST能否像ORB或SOA一样襄助复杂的拔取?在答复这多少个问题往日,让我们先暂时离开REST,把意见转向基于关周到据库的3层构架。

图片 1

平凡业务逻辑层对外提供多少的意义接口(如图中定义的IOrder瑟维斯(Service)(Service)),对内通过数量访问层访问数据库。我们精晓,关全面据库只定义了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.《怎么样收获一杯咖啡——星巴克(Buck)REST案例分析》

2.《深刻浅出REST》 

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

Leave a Reply

网站地图xml地图