flassger自动验证(验证=真)

时间:2017-07-14 09:00:30

标签: python validation swagger flasgger

我想向社区寻求有关在python上使用flasgger的帮助(v3) 目前我正在使用带有Flask-Restplus的闪光灯(尽管烧瓶重新装上了它自己的Swagger,我更喜欢使用闪光灯)。 无论如何,我的问题是当打开" validation = True"在@swag_from。 这是我的代码片段。

Python代码:

@api.route("/v1/cancels")
class Cancels(Resource):
    @swag_from(v1swag["cancels_post"], validation=True)
    def post(self):
        token = request.form.get("token")
        <...>
        message = {
            "message": "ok",
            "token": token
        }
        return jsonify(message)

Swagger(json)

v1swag = {
    "cancels_post": {
        "tags": ["/api/v1"],
        "parameters": [
            {
                "name": "token",
                "in": "body",
                "required": True,
                "description": "Cancels the provided token."
            }
        ],
        "responses": {
            "200": {
                "description": "Success!",
            }
        }
    }
}

问题是如果只使用@swag_from(v1swag [&#34; cancels_post&#34;]),一切正常(验证除外)。我的意思是Post事务成功完成。

如果我将它设置为@swag_from(v1swag [&#34; cancels_post&#34;],validation = True) 我明白了......

Response Body
{
  "message": "The browser (or proxy) sent a request that this server could not understand."
}
Response Code
400

我也试过

"in": "formData"

但得到了这些

Response Body
No data to validate
Response Code
500
Response Headers
{
  "access-control-allow-origin": "http://192.168.1.236:4000",
  "date": "Fri, 14 Jul 2017 08:58:19 GMT",
  "server": "gunicorn/19.7.1",
  "connection": "keep-alive",
  "content-length": "19",
  "vary": "Origin",
  "content-type": "text/html; charset=utf-8"
}

请您谈谈我面临的这个问题。我仍然无法找到可以帮助我解决问题的链接。

提前感谢大家。

1 个答案:

答案 0 :(得分:0)

很抱歉,事实证明我错过了&#34;架构&#34;标记以识别和枚举&#34;字段&#34;或&#34;标签&#34;验证。

有关于如何为formData创建验证的另一个问题,但会在另一篇文章中询问。

现在可以关闭此帖子了。