我在用着连接 https://github.com/zalando/connexion,一个用于 REST API 的 python 库,具有 swagger 定义。它对于实际请求正常工作,但是当出现错误情况(例如验证失败)时,它会返回如下响应:
{
"type": "about:blank",
"title": "Bad Request",
"status": 400,
"detail": "None is not of type 'string'"
}
标题、状态和细节都很好并且有意义,但是我有办法控制吗?type
键的值,以便我可以提供更多有用的信息,而不是简单地拥有about:blank
在那里?
在幕后,连接似乎使用了请求和烧瓶,所以也许我可以从中利用一些东西?
我从未使用过底层框架,但通过快速扫描,该模块公开了 Flask 应用程序构造函数。这样,您就可以使用 swagger 文件定义一个新应用程序:
app = connexion.App(__name__, specification_dir='swagger/')
然后添加自定义错误处理程序。例如,对于 400 错误,您可以执行以下操作
from flask import jsonify
@app.errorhandler(400)
def page_not_found(e):
custom_data = {
'type': 'Advanced type'
# etc
}
return jsonify(custom_data)
阅读有关 Flask 错误处理程序的更多信息here http://flask.pocoo.org/docs/0.11/patterns/errorpages/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)