做前后端分离全栈项目,前端必然要对路由进行封装、拦截等,而本人使用的又是阿里云fc的HTTP触发器,无法使用任意的状态码标识错误,因此需要基于HTTPException
类自定义错误类,固定所有错误的响应码都是200,自定义响应体结构,便于前端封装。
class BaseError(HTTPException):
code = 200
def __init__(self, code=500, msg="error", content=None):
if content is None:
content = {}
self.response = make_response(
dict(code=code, msg=msg, content=content)
)
注意:自定义异常的响应结构应和正常响应保持一致,一般的,REST-API都是json格式响应,因此可以加一个after_request函数,为所有响应添加响应头: Content-Type: application/json
。