zoukankan      html  css  js  c++  java
  • RESTful规范

    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风格的,那么我们来看下它到底是个什么样的风格,
    
      了解了它是什么后,我们看下它的优点是什么,我们为什么用它。        
    web服务交互

    2.关于rest的几个定义

    • 资源:网页中只要是可以被引用的都叫资源;可以是实体,也可以是抽象概念;
    • 引用的资源都要有一个标识,在web中唯一标识就是uri;
    •  
    • URL:统一资源定位符;用来描述我们资源地址的
    • URI:统一资源标志符;进行标识(身份证)
    •  
    • 统一资源接口:只设计一个url,用cbv的方式,对资源进行不同操作,也要遵循http请求方法的语义;
    • 资源的表述:资源的展现形式,就是数据,只不过在传输的时候被转化了,
    • 资源的状态:资源的表述呈现在页面上,就是我们说的资源状态;
    •  
    • 状态转移:类似"下一页"之类的链接起的就是这种推进状态的作用——指引你如何从当前状态进入下一个可能的状态;
    • 1)在web中,只要有被引用的必要都叫资源。
      (2)每个URI代表一个资源,独一无二的。
      (3)客户端通过HTTP的方法,对服务器端资源进行操作;
       (4)客户端和服务器之间,传递这种资源的某种表现层;
      (5)通过超链接的指引,实现"表现层状态转移"。
      REST风格的特点

    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请求  返回值为空
    • 九.返回错误信息
  • 相关阅读:
    hdu5834 Magic boy Bi Luo with his excited tree 【树形dp】
    POJ2152 Fire 【树形dp】
    POJ1848 Tree 【树形dp】
    hdu3586 Information Disturbing 【树形dp】
    BZOJ4557 [JLoi2016]侦察守卫 【树形dp】
    BZOJ4000 [TJOI2015]棋盘 【状压dp + 矩阵优化】
    BZOJ1487 [HNOI2009]无归岛 【仙人掌dp】
    BZOJ4002 [JLOI2015]有意义的字符串 【数学 + 矩乘】
    洛谷P3832 [NOI2017]蚯蚓排队 【链表 + 字符串hash】
    3-3 银行业务队列简单模拟
  • 原文地址:https://www.cnblogs.com/0627zhou/p/9964507.html
Copyright © 2011-2022 走看看