我正在用python和flask开发一个REST API,我把项目留在这里Github项目
我在应用程序中添加了错误处理程序,但是当我运行一个abort函数时,它会给我一条来自Flask的默认消息,而不是我定义的结构。
我将保留处理程序的路径以及我从哪里运行中止。处理程序中止(400)
瓶消息
好的,有人告诉我答案可能在另一个问题中。
要做的是覆盖Flask Api对象的handler函数。
这样,您就可以配置每个查询的回答格式,即使是包含错误的查询。
def response_structure(code_status: int, response=None, message=None):
if code_status == 200 or code_status == 201:
status = 'Success'
else:
status = 'Error'
args = dict()
args['status'] = status
if message is not None:
args['message'] = message
if response is not None:
args['response'] = response
return args, code_status
class ExtendAPI(Api):
def handle_error(self, e):
return response_structure(e.code, str(e))
一旦函数被覆盖,必须使用这个新函数来创建
users_bp = Blueprint('users', __name__)
api = ExtendAPI(users_bp)
有了这个,我们就可以使用flask函数来响应我们定义的结构。
if request.args.get('name') is None:
abort(400)
响应JSON
{
"response": "400 Bad Request: The browser (or proxy) sent a request that this server could not understand.",
"status": "Error"
}