我正在使用python开发一个小型RESTful Web应用程序并使用JSON作为接口。应用程序接受JSON数据,需要根据模式验证它们。根据请求,模式可能非常严格或灵活。此外,应用程序可能需要在以后的改进中验证用户对象。
我在堆栈溢出以及其他网站上找到了一些建议。那些包括
但找不到合适的比较。
在简洁性,灵活性和扩展能力方面,您认为我应该选择哪一个?
Cerberus似乎非常灵活,扩展能力从他们的文档和示例中看起来非常好。但我不了解其他图书馆。
编辑1 :目前,应用程序的需求非常简单,并且具有添加自定义类型和自定义验证规则的范围的基本模式验证就足够了。因此,如果所有这些库都提供了基本要求,我会选择最简单的库。我也愿意接受其他建议。
希望能找到一些帮助。
答案 0 :(得分:6)
如果只是因为它的精彩文档我会接受Cerberus。它允许根据特定条件(http://docs.python-cerberus.org/en/stable/validation-rules.html#dependencies)设置依赖关系,并且对于您称为jsonschema,妖娆等的基本模式验证需求来说当然很简单。
也支持嵌套字段(在我熟悉的所有图书馆中),他们的自定义文档非常棒:http://docs.python-cerberus.org/en/stable/customize.html
话虽如此,我并不是基于使用所有三个提议的软件包,而是广泛使用jsonschema并阅读其他两个文档和建议。