一、rest

rest:Representational State Transfer的缩写,翻译过来就是:表现层状态转化,rest只是一种软件架构风格,并不是一种具体的技术,而更像是一种约束与规范性的东西,他包含了很多原则与限制,而如果一个架构符合rest原则,就可以称他为restful架构。

资源

在REST中最重要的一个概念就是资源。在面向对象的世界里,我们提倡万物皆对象,而在REST的世界里则是万物皆资源。所谓”资源”,就是网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的存在。

表现层

“资源”是一种信息实体,它可以有多种外在表现形式。我们把”资源”具体呈现出来的形式,叫做它的”表现层”,如txt、html、xml、json等 ## 状态转换 HTTP协议,是一个无状态协议。这意味着,所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生”状态转化”(State Transfer)。而这种转化是建立在表现层之上的,所以就是”表现层状态转化”。在HTTP协议里面,就可以使用HTTP动词来对服务器端资源进行操作,实现“表现层状态转化”。如:GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。

二、restful api

restful api就是rest风格的api,它使用uri来描述资源,使用html、json、xml展示数据,通过http的动词来操作资源来实现状态转换,使用http状态码反应处理结果。

uri通常由三部分组成:

访问资源的命名机制 存放资源的主机名 资源自身的名称
  1. 使用GET的方式请求http://localhost/user代表查询用户列表
  2. 使用GET的方式请求http://localhost/user/1代表查询id为1的用户
  3. 使用POST的方式请求http://localhost/user代表创建一个用户
  4. 使用PUT的方式请求http://localhost/user/1代表修改id为1的用户
  5. 使用DELETE的方式请求http://localhost/user/1代表删除id为1的用户。

三、优缺点

感觉很鸡肋,并未发现多么好的优点,而且可读性很差。