码迷,mamicode.com
首页 > 其他好文 > 详细

RESTFUL规范建议

时间:2019-11-23 18:18:39      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:多网站   err   tran   结构   服务   你好   self   ror   www   

RESTful概述
RESTful是目前最流行的一种互联网软件架构,是程序和程序之间进行数据交互需要遵循的规范。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。

REST是Representational State Transfer的缩写,是Roy Thomas Fielding在他2000年的博士论文中提出的。其提出的设计概念和准则为:

  1. 网络上的所有事物都可以抽象为资源

  2. 每个资源都应该有唯一的标识(identifier),对资源的操作不会改变标识

  3. 所有的操作都是无状态的

  4. 使用标准方法(GET、POST、PUT、PATCH、DELETE)操作资源

规范建议

    1. https代替http,保证数据传输时安全。
    2. 在url中一般要体现api标识,这样看到url就知道他是一个api。
        http://www.baidu.com/api/....(建议,因为他不会存在跨域的问题)
        http://api.baidu.com/....
        假设:
            前段:https://www.baidu.com/home
            后端:https://www.baidu.com/api/
    3. 在接口中要体现版本
        http://www.baidu.com/api/v1....
        注意:版本还可以放在请求头中
            http://www.baidu.com/api/
            accept: ...
            
    4. restful也称为面向资源编程,视网络上的一切都是资源,对资源可以进行操作,所以一般资源都用名词。
        http://www.baidu.com/api/user/
        
    5. 如果要加入一些筛选条件,可以添加在url中    
        http://www.baidu.com/api/user/?page=1&type=9

    6. 根据method不同做不同操作。
            get、post、put、patch、delete
    7. 返回给用户状态码
        - 200,成功
        - 300,301永久 /302临时
        - 400,403拒绝 /404找不到
        - 500,服务端代码错误
        
        自定制状态码:
                def get(self,request,*args,**kwargs):
                    result = {'code':1000,'data':None,'error':None}
                    try:
                        val = int('你好')
                    except Exception as e:
                        result['code'] = 10001
                        result['error'] = '数据转换错误'
                    return Response(result)
        
    8. 返回值
        GET http://www.baidu.com/api/user/
            [
                {'id':1,'name':'rsx','age':19},
                {'id':1,'name':'rsx','age':19},
            ]
        POST http://www.baidu.com/api/user/
            {'id':1,'name':'rsx','age':43}
            
        GET http://www.baidu.com/api/user/2/
            {'id':2,'name':'rsx','age':43}
            
        PUT http://www.baidu.com/api/user/2/
            {'id':2,'name':'rsx','age':43}
        
        PATCH https//www.baidu.com/api/user/2/
            {'id':2,'name':'rsx','age':43}
            
        DELETE https//www.baidu.com/api/user/2/
            空
    9. 操作异常时,要返回错误信息
    
        {
            error: "Invalid API key"
        }
    10. 对于下一个请求要返回一些接口:Hypermedia AP
        {
            'id':2,
            'name':'rsx',
            'age':43,
            'depart': "http://www.baidu.com/api/user/30/"
        }

RESTFUL规范建议

标签:多网站   err   tran   结构   服务   你好   self   ror   www   

原文地址:https://www.cnblogs.com/ruanshuxin/p/11918899.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!