RESTful规范

web服务交互

  我们在浏览器中能看到的每个网站,都是一个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风格的,那么我们来看下它到底是个什么样的风格,

  了解了它是什么后,我们看下它的优点是什么,我们为什么用它。

REST风格

表述性状态转移

资源 网页中能看到的都是资源
    URL 统一资源定位符
    URI 统一资源标识符

统一资源接口
    对资源的操作根据HTTP请求方式的不同来进行不同的操作
    遵循HTTP请求方式的语义

前后端传输的是资源的表述
展现的是资源的状态
通过超链接的指引来告诉用户接下来有哪些资源状态可以进入

凡是遵循TEST风格实现的前后端交互都叫RESTful架构

核心思想

面向资源去编程  url中尽量名词不要动词
根据HTTP请求方式的不同对资源进行不同的操作

在url中体现的

体现版本
    https://v3.bootcss.com/
    https://.bootcss.com/v3

体现是否是API
     https://v3.bootcss.com/api

有过滤条件
     https://v3.bootcss.com/course?page=1

尽量用https

在返回值中

携带状态码
    1**   信息,服务器收到请求,需要请求者继续执行操作
   2**  成功,操作被成功接收并处理
   3**  重定向,需要进一步的操作以完成请求
   4**  客户端错误,请求包含语法错误或无法完成请求
   5**  服务器错误,服务器在处理请求的过程中发生了错误

返回值
    get  返回查看的所有或者单条数据
    post 返回新增的这条数据
    put/patch 返回更新的这条数据 
    delete 返回值空

携带错误信息

携带超链接
    在不分离的项目用的多
  ret = {
        code: 1000,
        data:{
            id:1,
            name:'小强',
            depart_id:http://www.luffycity.com/api/v1/depart/8/
        }
    }
感谢您的支持!学如逆水行舟,不进则退!