关于RESTfull

关于RESTful

REST的全称是 Representational State Transfer 中文含义表现层状态转化。

符合REST规范的设计,我们称为RESTful设计。它的设计哲学主要是将服务器提供的内容实体看作一个资源,并表现在URL上。

资源

如下地址,这个地址代表了一个资源,对这个资源的操作,主要体现在HTTP请求方法上,不是体现在URL上。

/user/xxx

过去我们对用户的增删改查获取是如下这样设计的URL:

POST /user/add?username=xxx
GET /user/remove?username=xxx
POST /user/update?username=xxx
GET /user/get?username=xxx

操作行为主要体现在行为上,主要是用的请求方式是post和get。在RESTful设计中,它是如下这样的:

post /user/xxx
get /user/xxx
delete /user/xxx
put /user/xxx

它将DELETE和PUT请求方法引入设计中,参与资源的操作和更改资源的状态。

资源表现

对于资源的具体表现形态,也不在如过去一样表现在URL上的文件后缀上。

过去设计资源的格式与后缀有很大的关联,例如:

get /user/xxx.json
get /user/xxx.xml

在RESTful设计中,资源的具体格式由请求报文头中的Accept字段和服务器的支持情况来决定。

如果客户端同时接收json和xml格式的响应,那么它的accept字段值就是如下这样的:

accpet:application/json,application/xm;

靠谱的服务器端应该要估计这个字段,然后根据自己能响应的格式做出响应。在响应报文中,通过content-type字段告知客户端是什么格式,如下:

content-type:application/json

具体格式,我们称之为具体的表现。

总结

所以REST的设计就是,将服务器的内容实体当成资源,通过URL设计资源,请求方法定义资源的操作,通过Accept决定资源的表现形式

RESTful与MVC设计并不冲突,而且是更好的改进。相比MVC,RESTful只是将HTTP请求方法也加入了路由的过程,以及在URL路径上体现得更资源化

posted @ 2024-09-25 15:33  CD、小月  阅读(9)  评论(0编辑  收藏  举报