resful规范: 进行数据交换时的代码潜规则

目前主流的三种web服务交互方案:

REST (Representational State Transfer) 表征性状态转移
SOAP (Simple Object Access Protocol)简单的对象访问协议
XML-RPC (XML Remote Procedure Call)基于XML的远程过程调用

但最为流行最为常用就是restful,而当一个架构符合REST的约束条件和原则,我们就称它为restful架构。
为了避免明文传输,更好的维护数据传输时的安全性,restful规范推荐使用https替代http。

1.restful规范就是在想要完成程序间数据交互的代码时所需要的遵循的规范,它视网上的一切数据为资源,所有的操作都是在对资源进行增删改查,所以这是一种面向资源式的编程。
2..如果说数据库就是资源库,那么URL就是用于检索的目录和直达资源的高速路。为了避免歧路亡羊的事情发生,所以在编写URL的时候必须遵循固定的规范,表达出的信息也要清晰明确,不至于产生歧义。
在URL中要明确体现一下几点:
1.api标识:http://www.xxxx.com/api/
2.版本信息:http://www.xxxx.com/api/v1
3.用名词而不是动词来表示所访问资源的种类,所用名词往往与数据库表格的名称相同

3.如果要通过在url中添加一些筛选条件,实现对资源的精准定位和对状态的精确控制,一般是以?+关键字= int整型 (需要在前段做好正则匹配)
http://www.luffycity.com/api/user/?page=1&type=9 #

4.restful规范下的URL代码比FBV下的URL要更加精简,只需要一个URL就能完成所有操作,因为他是根据不同的请求方法来判断对数据进行何种操作,而不需要分别为增删改查各设置一个URL。

  1. 返回值:要以json的形式返回值,delete的返回值为空
    GET http://www.luffycity.com/api/user/
    [
    {‘id’:1,’name’:’alex’,’age’:19},
    {‘id’:1,’name’:’alex’,’age’:19},
    ]
    POST http://www.luffycity.com/api/user/
    {‘id’:1,’name’:’alex’,’age’:19}

     GET http://www.luffycity.com/api/user/2/
         {'id':2,'name':'alex','age':19}
    
     PUT http://www.luffycity.com/api/user/2/
         {'id':2,'name':'alex','age':19}
    
     PATCH https//www.luffycity.com/api/user/2/
         {'id':2,'name':'alex','age':19}
    
     DELETE https//www.luffycity.com/api/user/2/
         空

    6.给用户返回状态码:
    – 200,成功

    • 300,301永久 /302临时
    • 400,403拒绝 /404找不到
    • 500,服务端代码错误
  2. 操作异常时,要返回错误信息

     {
         error: "Invalid API key"}
  3. 要为可能跳转的下一个网页要提供接口:Hypermedia AP
    {
    ‘id’:2,
    ‘name’:’alex’,
    ‘age’:19,
    ‘depart’: “http://www.xxx.com/api/user/30/
    }

点赞