如何自定义Flask REST API响应格式与flask-restx框架报错信息
解决方案
你可以通过为flask-restx的Api实例注册全局错误处理器,统一修改所有错误响应的格式,操作步骤如下:
步骤1:注册全局错误处理器
在你初始化Api对象的位置添加自定义错误处理逻辑,覆盖默认的错误返回规则:
from flask_restx import Api # 替换为你自己初始化Api实例的代码 api = Api( title='你的API文档标题', version='1.0', description='API功能描述' ) # 全局错误处理器,捕获所有HTTP异常 @api.errorhandler def format_error_response(e): # 提取异常的状态码,默认赋值500 code = getattr(e, 'code', 500) # 提取异常的提示信息,默认赋值服务内部错误 message = getattr(e, 'description', 'Internal Server Error') # 按照你定义的统一格式返回响应 return { "code": code, "status": "error" if code >= 400 else "success", "message": message, "data": {} }, code
步骤2:验证效果
配置完成后,再次对未定义GET方法的接口发起GET请求,就会返回符合规范的响应:
{ "code": 405, "status": "error", "message": "The method is not allowed for the requested URL.", "data": {} }
补充说明
- 该处理器会自动适配所有标准HTTP错误,包括404、401、403、500等常见异常,无需单独配置。
- 如果你需要处理自定义业务异常,只需在
@api.errorhandler()括号中传入自定义异常类,即可单独针对该类异常做格式适配。
内容的提问来源于stack exchange,提问作者Shahrear Bin Amin
相关产品推荐
相关产品推荐

