我正在用Python开发一个小的RESTful Web应用程序,并使用JSON作为接口。应用程序接受JSON数据,需要根据模式对其进行验证。根据请求,模式可能非常严格或灵活。此外,应用程序可能需要在以后的改进中验证用户对象。
我在堆栈溢出和其他网站上都找到了一些建议。其中包括
Cerberus
jsonschema
voluptuous
但找不到合适的比较。
在简单性、灵活性和扩展能力方面,您认为我应该选择哪一个?
Cerberus似乎非常灵活,从文档和示例来看,扩展能力似乎非常好。但我不知道其他图书馆的情况。
编辑1:目前,应用程序的需求非常简单,基本的模式验证(带有添加自定义类型和自定义验证规则的范围)就足够了。所以,如果所有这些库都提供了基本的需求,我会选择最简单的一个。如果有其他建议,我也愿意接受。
希望能找到一些帮助。
最佳答案
那我就带赛伯勒斯去,如果只是为了它美妙的文件。它允许根据特定条件(http://docs.python-cerberus.org/en/stable/validation-rules.html#dependencies)设置依赖项,并且对于您所指的JSonSchema、Voluptuous等基本模式验证来说,它无疑是简单的。
还支持嵌套字段(在我熟悉的所有库中),它们的自定义文档令人惊叹:http://docs.python-cerberus.org/en/stable/customize.html
尽管如此,我并不是基于使用所有三个提议的包来回答这个问题,而是基于广泛使用JSONSCHEMA并阅读其他两个包的足够文档和建议。