zoukankan      html  css  js  c++  java
  • Django Rest framework

    Django Rest framework介绍

    Django Rest framework是一个强大并且灵活的工具包,用以构建web API,可以在django的基础上,迅速实现API,并且自身还带有web的测试页面,可以方便测试自己的API

    Django Rest framework简单使用

    序列化和反序列化可以复用
    
                增:效验请求数据>执行反序列化过程>保存数据库>将保存的对象序列化并返回
    
                删:判断要删除的数据是否存在.>执行数据库删除
    
                改:判断要修改的数据是否存在>效验请求的参数>执行反序列化过程>保存数据库>将保存的对象序列化并返回
    
                查:查询数据库>将数据序列化并返回
    
    特点:
    
               1.提供了定义序列化器Serializer的方法,可以快速根据Django ORM 或者其他库自动序列化/反序列化
    
               2.提供了丰富的类视图MIXIN扩展类,简化视图的编写
    
               3.丰富的定制层级:函数视图类视图试图结合到自动生成API,满足各种需要
    
               4.多种身份认证和权限认证方式的支持
    
               5.内置了限流系统
    
               6.直观的API web界面
    
               7.可扩展性 , 插件丰富

    Django Rest framework------RESTful

    RESTful是一种开发理念  . REST是设计风格而不是标准
    
    REST特点:url简洁,将参数通过url传到服务器.
    
    称之为RESTful框架
    
    1.具象的:资源
    
    2.表现:格式
    
    3.状态转换:数据变化
    
    如果客服端想要操作服务器,必须通过某种手段,让服务器端发生"状态转换"
    
    总结:
    
    1.每一个URL代表一种资源
    
    2.客服端和服务器端,传递这个资源的表现层
    
     
    
    3.客服端通过四个GTTP动词,对服务器端资源进行操作,实现"表现层状态转化"
    表现层状态转化
    1.域名
    
    应该尽量将API部署在专用域名之下
    
    如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下。
    
    2.版本
    
    应该讲API的版本号放入URL
    
    3,路径
    表示API的具体网址,每个网站代表一种资源
    
    1.资源作为网站,不能有动词,而且所用的名词往往与数据库的表名对应
    
    2,API中的名词应该使用复数,无论子资源或者所有资源
    
    动词: GET(SELECT):从服务器取出资源(一项或多项)。
    
    POST(CREATE):在服务器新建一个资源。
    
    PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
    
    DELETE(DELETE):从服务器删除资源。
    4.过滤信息
    
    如果技能数量很多,服务器不可能都将它们返回给与用户API应该提参数,过滤返回结果
     
    
    5. 状态码
    
    服务器想用户返回的状态码,和提示信息,
    
    6. 错误处理(Error handling)
    
    如果状态码4xx,服务器就应该想用户返回出错信息,
    
    7. 返回结果
    
    针对不同操作,服务器想用户返回的结果应该符合以下规范
    
    1.GET/collection:返回资源对象的列表
    
    2.GET/coliection/resource:返回单个 资源对象
    
    3.POST/collection:返回新生成的资源对象
    
    4.PUT/collection/resource返回完整的资源对象
    
    5.PATCH//collection/resource返回完整的资源对象
    
    6.DELECT//collection/resource返回一个空文档
    
    8. 超媒体(Hypermedia API)
  • 相关阅读:
    11.枚举类.md
    10. Lambda表达式.md
    9.内部类
    8.抽象类、接口和多态.md
    7.final关键字.md
    jQuery学习笔记(5)-事件与事件对象
    Log4Net学习笔记(1)-完整的例子
    SqlServer知识点-操作xml
    NHibernate常见错误汇总(0)-持续更新中
    jQuery学习笔记(4)-设置元素的属性和样式
  • 原文地址:https://www.cnblogs.com/pythonz/p/10933668.html
Copyright © 2011-2022 走看看