1.REST风格
我们在浏览器中能看到的每个网站,都是一个web服务。那么我们在提供每个web服务的时候, 都需要前后端交互,前后端交互就一定有一些实现方案,我们通常叫web服务交互方案。 目前主流的三种web服务交互方案: -- REST ( Representational State Transfer)表述性状态转移 -- SOAP (Simple Object Access Protocol) 简单的对象访问协议 -- XML-RPC (XML Remote Procedure Call)基于XML的远程过程调用 XML-RPC是通过XML将调用函数封装,并使用HTTP协议作为传送机制。 后来在新的功能不断被引入下,这个标准慢慢演变成为今日的SOAP协定。 SOAP服务则是以本身所定义的操作集,来访问网络上的资源。 SOAP也是基于XML的,但是它不只限于HTTP协议的传输,包括TCP协议,UDP协议都可以传输。 REST是Roy Thomas Fielding博士于2000年在他的博士论文里提出来的。 REST相比SOAP更加简洁,性能和开发效率也有突出的优势。 我们今天主要说一下这个REST,现在越来越多的web服务开始采用REST风格设计和实现。 例如,amazon.com提供接近REST风格的Web服务进行图书查找;雅虎提供的Web服务也是REST风格的。 我们接下来要学的框架也是遵循REST风格的,那么我们来看下它到底是个什么样的风格, 了解了它是什么后,我们看下它的优点是什么,我们为什么用它。
2.关于rest的几个定义
- 资源:网页中只要是可以被引用的都叫资源;可以是实体,也可以是抽象概念;
- 引用的资源都要有一个标识,在web中唯一标识就是uri;
- URL:统一资源定位符;用来描述我们资源地址的
- URI:统一资源标志符;进行标识(身份证)
- 统一资源接口:只设计一个url,用cbv的方式,对资源进行不同操作,也要遵循http请求方法的语义;
- 资源的表述:资源的展现形式,就是数据,只不过在传输的时候被转化了,
- 资源的状态:资源的表述呈现在页面上,就是我们说的资源状态;
- 状态转移:类似"下一页"之类的链接起的就是这种推进状态的作用——指引你如何从当前状态进入下一个可能的状态;
-
(1)在web中,只要有被引用的必要都叫资源。 (2)每个URI代表一个资源,独一无二的。 (3)客户端通过HTTP的方法,对服务器端资源进行操作; (4)客户端和服务器之间,传递这种资源的某种表现层; (5)通过超链接的指引,实现"表现层状态转移"。
3.RESTful
- 前提:一个架构符合REST的约束条件和原则,就称为RESTful架构
- 一.面向资源编程:每个url代表一种资源,url尽量不要用动词,要用名词;
- 二.根据method不同,进行不同操作: GET/POST/PUT/DELETE/PATCH
- 三.在URL中体现版本:https://www.bootcss.com/v1/mycss https://v1.bootcss.com/mycss
- 四.在URL中体现是否是API https://www.bootcss.com/api/mycss
- 五.在URL中的过滤条件https://www.bootcss.com/v1/mycss?page=3
- 六.尽量使用https
- 七.响应时设置状态码,成功的,失败的
- 八.返回值:
- GET请求 返回查到所有或单条数据
- POST请求 返回新增的数据
- PUT请求 返回更新数据
- PATCH请求 局部更新 返回更新整条数据
- DELETE请求 返回值为空
- 九.返回错误信息