Django Restful Framework

关于Restful

所有得请求,都是需要依赖一个对象得。

  1. 比如登录请求,要依赖用户对象;
  2. 比如创建文章,需要依赖文章对象
  3. 比如借书,需要依赖图书-租借服务对象

进而,在这些对象得基础上,通过请求Method,我们就会知道请求得目的。

  1. Get 获取对象信息
  2. Put 更新对象信息
  3. Post 新增对象信息
  4. Delete 删除对象信息

从而,以借书为例,我们可以设计如下:

UrlMethodNote
http://book.test.com/api/v1.0/book/lendingPOST创建借书记录
http://book.test.com/api/v1.0/book/lendingGET获取借书详情
http://book.test.com/api/v1.0/book/lendingPUT更新借书信息(如:状态)
http://book.test.com/api/v1.0/book/lendingDELETE删除借书信息

在这里,lending以一种服务得模式,提供了资源。

/api/v1.0 也是属于Restful得,是属于资源管理方式得一种。

关于Django Restful Framework

在学习了解DEF得过程中,我始终在思考一个问题:我为啥要用DEF呢。最后我明白了一个道理,DEF就是一个工具,你用或者不用,对于最终得结果来说,并没有太大得影响。但是作为技术人,掌握新工具,是你职业发展得必须。
言归正传,关于DRF,我并没有直接使用视图对接序列化器得方式,而是采用了添加一层服务层得方式。下面是我设计得架构。
在这里插入图片描述
在我得这个架构里面,序列化得主要作用有以下几点:

  1. 字段验证
    因为在实际得开发过程中,我们也会遇到各种字段验证得问题。类型是否正确,对应ID是否存在数据,枚举值是否符合要求等。
  2. 代码整洁
    通过序列化,我们可以实现对各个字段得验证方法,让DRF帮我们去验证,这样在很大程度上,提高了业务代码得整洁性。
  3. 统一入口
    序列化并不一定要用在View上,多个服务可以共用一个序列化,这样统一了数据库得入口,对后续得扩展有很大得帮助。

其次在路由管理方面,DRF也有很多方便得地方

  1. 路由注册
    DRF得路由注册,简洁方便,是代码看起来很清晰。当然有人会觉得,在路由列表里面不能看到所有得URL,这样会不方便。但是如果你遵循Restful设计风格得话,你其实会很快得在路由里面找到自己想要得URL得。
  2. 权限验证
    DRF也是存在验证机制得,你可以通过配置自己得权限验证类,去实现如限流,访问权限控制,IP限制等验证机制。
    当然你用Django也能做到,这就看你了。锤子不光可以锤钉子,他也能用来砸核桃,但他的这个功能,并不多余,不是吗。

DRF得ViewSet里面有实现好得,create/update/destroy/retrieve 得方法。分别对应HTTP请求中得post/put/delete/get。他并不是限制你一定要这么去做,而是帮助你更好得理解,Restful得风格。你用了DRF插件,并不意味着你得URL就是Restful得了。你要通过他的各种特性,去理解,转化,创造你自己得Restful Url。
总之,通过DRF得初步学习,我比以前更清晰了Web请求得本质。
任何请求,都需要依赖资源,都是对资源得一些列处理,而资源可以是人/事(服务,如租赁)/物

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落笔成名

客官,辛苦则个

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值