restful的理解

来源:互联网 发布:mac pdf reader pro 编辑:程序博客网 时间:2024/04/28 08:02

本文来自:http://www.ruanyifeng.com/blog/2011/09/restful.html

REST,即Representational State Transfer的缩写,翻译是"表现层状态转化"。

REST的名称"表现层状态转化"中,省略了主语。"表现层"其实指的是"资源"(Resources)的"表现层"。

所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实在。你可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的URI。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或独一无二的识别符。

每一个URI代表一种资源;

  客户端和服务器之间,传递这种资源的某种表现层;

  客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。

最常见的一种设计错误,就是URI包含动词。因为"资源"表示一种实体,所以应该是名词,URI不应该有动词,动词应该放在HTTP协议中。

如果某些动作是HTTP动词表示不了的,你就应该把动作做成一种资源。比如网上汇款,从账户1向账户2汇款500元,错误的URI是:

  POST /accounts/1/transfer/500/to/2

正确的写法是把动词transfer改成名词transaction,资源不能是动词,但是可以是一种服务:

  POST /transaction HTTP/1.1
  Host: 127.0.0.1
  
  from=1&to=2&amount=500.00


0 0
原创粉丝点击