我使用 flask-restplus 实现了一个非常简单的 API,但是当我尝试bundle_errors=True
与reqparse
. 对于以下代码
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