我公开HTTP端点 - 使用Bottle独家输出JSON。
当前错误抛出:{'error': %s, 'error_message': %s, 'status_code': #}
。
所以在我所有的端点装饰函数中我都有:
try:
someObj = <stuff>
except <MyCustomErrors> as e:
response.status = e.response.pop('status_code', 500)
return e.response
response.status = someObj.response.pop('status_code', 200)
return someObj.response
但是,我可以轻松地完全避免使用异常,从而减少开销,从而产生更简洁的+ DRYer端点代码。
但是有缺点;其他开发人员至少需要读取或运行代码一次才能理解输出格式。
文档可在此处使用;然而这整个设置是不好的做法吗?
答案 0 :(得分:0)
与此同时,我写了这个可怜的替补:
# Not a decorator because I can't work out how to give `@route(apply=)` func args
def error_else_response(init_with):
try:
result = init_with(**request.query)
except <CustomError> as e:
response.status = e.msg.pop('status_code')
return e.msg
response.status = result.response.pop('status_code')
return result.response
@route('/augment')
def augment():
return error_else_response(<CustomClass>)