简述
这一阶段的重构主要集中在接口返回码的格式统一上,优化了臃肿的各种判断及try-exception 机制。
主要思路,使用装饰器来封装常用代码;使用Python的exception机制,自定义一些Exception,在恰当的地方主动抛出异常,然后在顶层再catch住,进行统一的handle处理。
现存问题
在views.py文件里,我们都要检查url里的参数,原来写法如下:
(__init__.py)
def checkParam(requirefields, param):
for i in requirefields:
if -1 == param.get(i, -1):
return False
return True
(views.py)
if not checkParam(["company_name", "sign", "userID"], param):
return 'Missing Param'
这种写法使得“missing param” 很分散,每个接口都要复制一遍代码使得代码非常臃肿,并且增加了“missing param”消息体封装的难度。针对这两个问题,我们采用了如下方法来重构
解决方法
一 抽离常用代码
参考了文雨写的@frequency_limit
,将检查param和sign的方法抽离出来:
def frequency_limit(func):