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

 

posted @ 2018-07-08 22:07  JERD  阅读(280)  评论(0编辑  收藏  举报