现在后台的接口广泛的采用了Restful风格。本文给出了一种基于装饰器的实现。简化了后台接口的编写
主要思路
- 定义一个装饰器。封装接口的返回值
- 对于成功的情况,返回json数据。对于异常的情况,抛出异常。并且返回全局错误码
接口协议
接口返回格式为
- code: 如果code 为200,则代表成功,其他都为失败
- data: 对应的是接口的返回结果
- msg: 错误编码
下面为代码实现
from functools import wraps
import json
def response(func):
@wraps(func)
def wrapper(*args, **kwargs):
try:
result = func(*args, **kwargs)
except RuntimeError as info:
return json.dumps({
"code": 200,
"data": None,
"msg": info.args[0]
})
else:
return json.dumps({
"code": 100,
"data": result,
"msg": ""
})
return wrapper
用例
@response
def demo():
if True:#正常返回
return {"name": "1"}
else:#异常情况
raise RuntimeError('100001')