我正在我的新项目中使用flask框架。它将从post获取JSON数据并发送JSON响应。因此,我需要验证我的JSON请求。我看过几家图书馆。但这些库并没有按预期工作。最后,我决定使用flask jsonschema验证器。它可以很好地处理单个JSON对象。如果请求对象具有嵌套对象,则该对象不工作。比如说,
from flask_jsonschema_validator import JSONSchemaValidator
JSONSchemaValidator(app=app, root="schemas")
这是我对验证器的初始化
# If any error occurred in the request.
@app.errorhandler(jsonschema.ValidationError)
def json_validation_error(e):
return json_response("error", str(e), {})
这是我的错误处理程序
@app.validate('model','save') def save_model():
这是我的实现
{
"save": {
"type": "object",
"properties": {
"workspace": {"type": "object"},
"name": {"type": "string"},
"description": {"type": "string"},
"uri": {"type": "string"},
"type": {
"name": {"type": "string"},
}
},
"required": [ "workspace", "name", "description", "uri", "type"]
}
}
这是我的model.json文件。它正在验证除“类型”之外的请求。如何使用嵌套对象对JSON请求应用验证
请帮助任何人解决此问题
提前谢谢
flask-expects-json包检查嵌套对象上的变量类型
它在你的路线上起到装饰的作用
如果要验证复杂的嵌套对象,我建议使用JSONSchema的替代工具。我可以在GoodJSON中复制您的模式验证,如下所示。如您所见,制定一个验证模式只是由一系列自包含的验证程序函数组成,这些函数可以应用于对象、列表和原语值
免责声明:我是GoodJSON的作者
相关问题 更多 >
编程相关推荐