RESTful架构是一种流行的互联网软件架构,它结构清晰,符合标准,易于理解,扩展方便。
REST是RepresentationalState Transfer的缩写,翻译为“表现层状态转化”。表现层其实就是资源,因此可以理解为“资源状态转化”。
网络应用上的任何实体都可以看作是一种资源,通过一个URI(统一资源定位符)指向它。
表现层(Representation)
“资源”是一种信息实体,它可以有多种外在表现形式。我们把“资源”具体呈现出来的形式叫做它的“表现层”。
例如,文本可以是txt格式表现,也可以用HTML格式,XML格式,JSON格式表现;图片可以是JPG格式也可以是PNG格式表现等。
URI之代表资源实体,不代表它的形式。URI应该之代表“资源”的位置,而它具体的表现形式应该在HTTP请求的头信息中用Accept和Content-Type字段指定,这两个字段才是对“表现层”的描述。
状态转化(StateTransfer)
访问一个WEB应用就代表了客户端与服务短的一个互动过程。HTTP协议是一个无状态协议。因此所有的状态都保存在服务端。如果客户端想要操作服务器,就必须通过某种手段让服务端发生“状态变化”(State Transfer)。而这种状化是建立在表现层之上的,所以就是“表现层状态转化”。
设计指南
请求地址
http://www.example.com/api/v1/
域名 类型 版本号
请求命令
对于资源的具体操作,由HTTP动词表示
常用的HTTP动词包括一下几个,括号里是对应的SQL命令:
GET(SELECT): 从服务器取出资源
POST(CREATE): 在服务器新建一个资源
PUT(UPDATE): 在服务器更新资源
DELETE(DELETE): 从服务器删除资源
请求参数
如果记录数过多,服务器不可能一次性将所有的信息返回给客户端。API应该提供参数,过滤返回结果。下面一些常见的参数:
GET http://www.example.com/api/v1/data?offset=5&limit=10:指定返回记录的数量
HTTP协议
协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。
目前我们使用的是HTTP/1.1 版本。
实际上我们输入URL后,我们的浏览器给Web服务器发送了一个Request,Web服务器接到Request后进行处理,生成相应的Response,然后发送给浏览器,浏览器解析Response中的HTML,这样我们就看到了网页。
HTTP协议结构