Django REST framework 源码流程剖析

前言

Django REST framework is a powerful and flexible toolkit for building Web APIs.

本文由浅入深的引入Django REST framework (以后简称DRF)并剖析源码流程,让看官们对DRF有更深的认识,在使用的时候更得心应手。

如有错误,不吝赐教 帮忙指正,水平有限,本文示例代码请核对后使用。

前后端分离

什么是前后端分离以及前后端分离的应用场景?

我实在不知道怎么描述,下面给一个我自己的片面理解:

RESTAPI + iOS + Android + Web

以RESTAPI+ Web为例,其架构示意图如下:

一体式结构示意图:

 

前后端分离式Web架构示意图:

谁来主导 ?

前后端分离以后,前端可以根据用户不同时期的体验需求迅速改版,后端对此毫无压力。同理,后端进行的业务逻辑升级,数据持久方案变更,只要不影响到接口,前端可以毫不知情。

当然如果需求变更引起接口变化的时候,前后端又需要坐在一起同步信息了。

前后分离不仅带来好处,也带来矛盾,毕竟后端思维和前端思维还是有所不同——前端思维倾向于用户体验,而后端思维则更倾向于业务的技术实现。

除此之外,前后分离在安全性上的要求也略有不同。由于前后分离本质上是一种 SOA 架构,所以在授权上也需要按 SOA 架构的方式来思考。

Cookie/Session 的方式虽然可用,但并不是特别合适,相对来说,基于 Token 的认证则更适合一些。

采用基于 Token 的认证就意味着后端的认证部分需要重写……后端当然不想重写,于是会将皮球踢给前端来让前端想办法实现基于 Cookie/Session 的认证……于是前端开始报怨(悲剧)……

因此系统一个良好的流程规范,RESTfull 应运而生。

什么是RESTfull

猜你喜欢

转载自www.cnblogs.com/0bug/p/9025447.html