1

我使用 flask-restplus 实现了一个非常简单的 API,但是当我尝试bundle_errors=Truereqparse. 对于以下代码

from flask import Flask
from flask_restplus import Api, Resource, reqparse

app = Flask(__name__)
api = Api(app)

parser = reqparse.RequestParser(bundle_errors=False)
parser.add_argument('username', type=list, required=True, help="Missing Username", location="json")
parser.add_argument('password', type=list, required=True, help="Missing Password", location="json")

@api.route('/user')
class User(Resource):
    def post(self):
        args = parser.parse_args()
        return {"ID":"1", "Username": args['username'], "Password": args['password']}, 201


if __name__ == '__main__':
    app.run(host="0.0.0.0", debug=True)

1-bundle_errors=False我何时发送缺少参数的请求

curl -X POST \
  http://localhost:5051/user 
  -H 'content-type: application/json'
  -d '{}'

我得到以下回复

{
    "errors": {
        "username": "Missing Username"
    },
    "message": "Input payload validation failed"
}

这很好,只是只显示了一个缺失的字段。

2-当我使用时bundle_errors=True(如文档中所述),我得到以下结果

{
    "Username": "Missing required parameter in the JSON body",
    "Password": "Missing required parameter in the JSON body",
    "ID": "1"
}

这意味着 RequestParser 没有抛出任何错误并返回此字符串“Missing required parameter in the JSON body”作为实际输入

难道我做错了什么?

我正在使用 python 版本 3.5.2 和 flask-restplus==0.10.1

4

0 回答 0