本文不求完全细致,只求看到这些东西的时候还能想起来那么一回事
本文内容部分摘自网络,主要参考阮一峰老师的文章
- REST原则
- REST指的是一组架构约束条件和原则.这些原则是:
- 为所有事物定义ID 用URI来标识其作为系统中唯一的一个存在.
- 将所有事物链接在一起
HATEOAS:超媒体被当做应用状态引擎.
其中一个方面是”超媒体”,换句话说就是”链接的思想”.(将本资源直接相关的资源的链接给出)
另一个方面是”应用状态”.客户端可以通过给出的本资源直接相关的资源的链接将自身的状态机改变. - 使用标准方法:
为了能够使客户端程序(多种,不一定就是浏览器)跟服务端的资源相互协作,资源应该正确地实现默认的应用协议(http),也就是使用标准的GET,PUT,POST,DELETE方法. - 资源多重表述:
一种资源可以用json的格式来提供,也可以使用xml的格式来提供.但在实际小规模开发,不对外提供接口的开发中.直接规定为json或者xml就可以了. - 无状态通信
虽然REST包含无状态性,单并不代表暴露功能的应用就不能有状态.
REST要求状态要么被放入资源状态中(在URI后边绑缚session),要么保存在客户端上.
最直接的好处就是可伸缩性.
无状态约束使服务器的变化对客户端是不可见的.比如说其中一台服务器宕机了,但是对于客户端来说是不知道的.
- REST指的是一组架构约束条件和原则.这些原则是:
- 什么是RESTful架构.如果一个架构符合REST原则,就称它是RESTful架构
- RESTful的名称. Representational State Transfer.翻译为”表现层状态转化”.
- 什么是资源
网络上的一个实体,或者说网络上的一个具体信息,都可以称为资源.比如说一段文本,一张图片,一首歌,一个API服务.
用URI来标识其作为系统中唯一的一个存在. - 什么是表现层
我们把资源表现出来的形式,叫做”表现层”.其相对于资源来说,是资源在服务器上的一种存在形式.而不是客户端浏览器或者其他什么东西.
URI只代表资源的实体,而不代表它的形式.严格地说,有些网址最后的”.html”后缀名是不必要的,因为这个后缀名表示格式,属于”表现层”范畴,而URI应该只代表”资源”的位置。
它的具体表现形式,应该在HTTP请求的头信息中用Accept和Content-Type字段指定,这两个字段才是对”表现层”的描述。
- 状态转化 如果客户端想要操作服务器,必须通过某种手段,让服务器端发生”状态转化”,而这种转化是建立在表现层之上的,所以就是”表现层状态转化”.
- 误区
- RESTful架构不应该包含动词.
资源表示的是一种实体,所以应该是名词而不是动词.动词(也就是客户端要对服务器进行的操作_应该放在HTTP协议中(放在url后边的参数中). - RESTful架构不应该在URI中加入版本号
因为不同的版本,可以理解为同一种资源的不同表现形式,所以应该用同一个URI,版本号可以再HTTP请求头信息的Accept字段中进行区分.
- RESTful架构不应该包含动词.