对RESTful架构风格理解

一丶来历
REST这个词是在Roy Thomas Fielding大牛(这个人是HTTP协议1.0版本和1.1版本的主要编写者,也是Apache服务器软件的作者之一)在他的博士论文中提出的,是Representational State Transfer的缩写,即是“表现层状态转换”,需要加一个主语的话,他的主语就是资源(Resources),什么意思呢,就是说描述在web上,资源的表现形式的转换,比如:一个网页,主页是有背景音乐的图片展示,点了一个按钮之后,就转换到了一个全是文本信息的展示,这个过程就是资源的表现层状态转换。

二丶规定
REST是一种设计风格,提供了设计原则和约束条件,而不是架构。而满足这些约束条件和原则的应用程序或设计就是Restful架构或服务。

三丶表现层
资源是一种实体,他表现的各种形式,如:同一组数据,可以用图表形式展示,也可以用文本形式展示,这就是资源的表现层形式。这里还要说些URI和URL,URL是统一资源标识符,包含URN(统一资源名称)和URL;URL是统一资源定位符,是资源的具体位置,他俩区别在于:URI不能定位资源,URI也不能进行i/o操作,而URL能够。URI的具体表现形式,应该在HTTP请求的头信息中用Accept和Content-Type字段指定,这两个字段才是对”表现层”的描述。

四丶状态转换(State Transfer)
由于客户端和服务器端交互都是用的http协议或者https协议,而http协议呢是一种无状态协议,那么通过客户端发送带有状态信息的http协议来操作服务器是不能做到的,所以资源的状态信息只能是保存在服务器端的,客户端要让服务器端的资源状态信息发生变化,只能是客户端发送http协议中表示操作的动词,即是GET(获取资源),POST(新建资源,也可以用于更新资源),DELETE(删除资源),PUT(更新资源)等等,其余的操作不常用我也不太了解。

五丶总结
Restful的API设计强调以资源为中心而不是以动作为中心,所有的API应该都是基于名词的描述,而非动词,而动作通过http方法来描述,即是URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。

六丶例子
非RESTful设计的设计如下:
创建房间

post /create_room
params: room_name
params: room_size

更新房间

post /update_room
params: room_name
params: room_size

获取房间信息

get /get_room
params:room_name
return:room_size

RESTful设计的设计如下:
创建房间

post /room
params:room_name
params:room_size

更新房间

put /room
params:room_name
params:room_size

获取房间信息

get /room
params:room_name
return:room_size

每次看完别人的博客,脑子里面过一遍之后,再自己写出来一遍,这个过程沉淀一下,个人感觉这样学起来更有印象些。下面是我参考的博文链接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值