截获Flask restplus名称空间类的Validation错误

时间:2018-07-19 09:04:48

标签: flask exception-handling flask-restful flask-restplus

当前,命名空间解析器将验证请求参数并抛出类似错误

{
    "errors": {
        "file": "Missing required parameter in an uploaded file"
    },
    "message": "Input payload validation failed"
}

从flask-app中,我想拦截或处理这些异常并发送自定义响应以获得一致性,例如 {         “错误”:{             “ file”:“上载文件中缺少必需的参数”         },         “ message”:“输入有效负载验证失败”,         “ id”:“某些客户ID”     }

是否可以从应用程序级别处理此异常,而不是针对每个api进行处理

1 个答案:

答案 0 :(得分:1)

根据该问题https://github.com/noirbizarre/flask-restplus/issues/530,有一种解决方法来获得个性化消息。

也就是说,可以通过BadRequest错误处理程序的定义来实现这一点并修改data属性:

@api.errorhandler(BadRequest)
def bad_request(self):
    self.data.update({'id': 'some customer id'})

    return {}, 400

但是,没有避免空字典返回的干净方法,因为它被丢弃了。