zoukankan      html  css  js  c++  java
  • Django REST framework 简介

    1. 在序列化与反序列化时,虽然操作的数据不尽相同,但是执行的过程却是相似的,也就是说这部分代码是可以复用简化编写的。
    2. 在开发REST API的视图中,虽然每个视图具体操作的数据不同,但增、删、改、查的实现流程基本套路化,所以这部分代码也是可以复用简化编写的:
      • 增:校验请求数据 -> 执行反序列化过程 -> 保存数据库 -> 将保存的对象序列化并返回
      • 删:判断要删除的数据是否存在 -> 执行数据库删除
      • 改:判断要修改的数据是否存在 -> 校验请求的数据 -> 执行反序列化过程 -> 保存数据库 -> 将保存的对象序列化并返回
      • 查:查询数据库 -> 将数据序列化并返回

    Django REST framework可以帮助我们简化上述两部分的代码编写,大大提高REST API的开发速度

    Django REST framework 框架是一个用于构建Web API 的强大而又灵活的工具。通常简称为DRF框架 或 REST framework。

    DRF框架是建立在Django框架基础之上

    特点

    • 提供了定义序列化器Serializer的方法,可以快速根据 Django ORM 或者其它库自动序列化/反序列化;
    • 提供了丰富的类视图、Mixin扩展类,简化视图的编写;
    • 丰富的定制层级:函数视图、类视图、视图集合到自动生成 API,满足各种需要;
    • 多种身份认证和权限认证方式的支持;
    • 内置了限流系统;
    • 直观的 API web 界面;
    • 可扩展性,插件丰富

    REST是一种标准,restful是一种规范,根据产品需求需要定出一份方便前后端的规范,因此不是所有的标准要求都需要遵循

    restful规范:

    首先restful是一种软件架构风格或者说是一种设计风格,并不是标准,它只是提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。     
    就像设计模式一样,并不是一定要遵循这些原则,而是基于这个风格设计的软件可以更简洁,更有层次,我们可以根据开发的实际情况,做相应的改变。
    它里面提到了一些规范,例如:
    1.restful 提倡面向资源编程,在url接口中尽量要使用名词,不要使用动词             
    2、在url接口中推荐使用Https协议,让网络接口更加安全
    https://www.bootcss.com/v1/mycss?page=3
    (Https是Http的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,
    因此加密的详细内容就需要SSL(安全套接层协议))                          
    3、在url中可以体现版本号
    https://v1.bootcss.com/mycss
    不同的版本可以有不同的接口,使其更加简洁,清晰             
    4、url中可以体现是否是API接口
    https://www.bootcss.com/api/mycss            
    5、url中可以添加条件去筛选匹配
    https://www.bootcss.com/v1/mycss?page=3             
    6、可以根据Http不同的method,进行不同的资源操作
    (5种方法:GET / POST / PUT / DELETE / PATCH)             
    7、响应式应该设置状态码
    8、有返回值,而且格式为统一的json格式             
    9、返回错误信息
    返回值携带错误信息             
    10、返回结果中要提供帮助链接,即API最好做到Hypermedia
    如果遇到需要跳转的情况 携带调转接口的URL

      ret = {
    code: 1000,
    data:{
    id:1,
    name:'小强',
    depart_id:http://www.luffycity.com/api/v1/depart/8/
    }
    }
    View Code
  • 相关阅读:
    带有参数的存储过程
    不实用数据库实现保存和查询功能
    http错误代码(快速了解错误所在)
    ListBox的应用(左边中的信息移至右边)
    省市县三级连动(数据在一个表中)
    简单的实现用户注册时,向其油箱发送激活码邮件,并进行状态处理。 .
    省级三连动(二)
    省市选择期三级联动
    百钱百鸡
    MySQL命令简单应用
  • 原文地址:https://www.cnblogs.com/zgf-666/p/9281504.html
Copyright © 2011-2022 走看看