使用Python的OpenApi 3请求验证

时间:2019-02-18 13:46:25

标签: python rest openapi

似乎有许多专用于验证OpenApi模式正确性的python库。虽然这可能有用,但坦率地说,我可以在https://editor.swagger.io中将我的OpenApi模式写在这里,并对其进行验证/转换/漂亮的格式。

然后我剩下的客户可能会向我的OpenApi记录的端点发送任何类型的脏数据。

因此,我找不到的是提供给定OpenApi模式和JSON(通常来自HTTP请求)的库,该库根据模式验证了输入/数据JSON。所有必填字段都到位了吗?我希望age是一个数字,所以不要通过验证,因为它是作为字符串传递的,依此类推。

我能找到的最接近的东西是https://flask-restplus.readthedocs.io/en/stable/,但

  1. 它与Flask链接,不能在不同的环境中使用
  2. 它不接受OpenApi模式,但是产生一个,我发现它是不完整的
  3. 其GitHub存储库中有许多未解决/尚未确认的未解决问题

是否有任何Python库可以再次验证输入数据以及OpenApi模式?

3 个答案:

答案 0 :(得分:4)

JSON模式 OpenAPI 3 -read The Docs

完全兼容

您可以为Python安装json schema包装器并验证application/json数据。

答案 1 :(得分:0)

关于 2019年第一季度,没有此类工具。 现有工具的好清单是https://openapi.tools/#data-validators

作为一种解决方法,可以使用现有工具之一,并从python调用使用该工具创建的二进制文件。

PS。有https://github.com/p1c2u/openapi-core,但似乎不支持完整的OpenApi 3。

答案 2 :(得分:0)

请参见Falcon Heavy。它可以集成到您的Falcon,Flask或Django项目中,也可以使用工厂中的数据生成验证器。