Python 连接 — 控制 400 个响应错误中的键"Type"



我正在使用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错误处理程序的信息

我也通过将null输入到一些模型属性来处理这个问题。如果不想创建错误处理程序,只需添加标记x-nullable: true

相关内容

  • 没有找到相关文章

最新更新