Skip to content

Latest commit

 

History

History
32 lines (26 loc) · 1.86 KB

6.md

File metadata and controls

32 lines (26 loc) · 1.86 KB

上一节 定制自己的基础model
下一节 增加依赖管理

定制自己的基础api

一般在使用django开发接口时,都会继承django的View,然后有什么需要在request或者response上处理的,
就通过django的中间件process_response/process_request来完成的.
但是,我很不喜欢这种方式,我就喜欢通过继承一个基类,所有都在基类中完成.
于是就有了这一章节.

tag: 0.0.6

后端

涉及文件

base/api.py

代码

base/api.py:
在基类中设置两个属性NEED_LOGIN(接口是否需要登录认证)、NEED_PERMISSION(接口是否要权限验证).
然后就是写各种认证的方法、参数校验、统一管理异常、统一返回值.
这个基类其实也是继承django的View,只是重写了dispatch方法.
所有的接口在处理前,都先调用_pre_handle来完成request的处理.
在调用接口时,进行了统一的try except,根据返回异常的类型来进行不同的处理操作.
这个异常的处理逻辑大概就是:当异常是我们自己定义的类型时,就说明是我们自己主动抛出的异常.
那么就直接设置返回码和信息为该错误的错误码和信息即可.
但是当异常不是我们自己定义的类型时,就说明程序运行出了bug,这时候就需要把异常信息写入log中.
同时返回给前端一个我们统一的信息(因为这个信息一般是直接给用户看的,需要更加友好一些).

上一节 定制自己的基础model
下一节 增加依赖管理