如何在 Python 中根据 OpenAPI3 规范验证 HTTP 请求?

问题描述 投票:0回答:3

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

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

目前,根据 OpenAPI 模式验证数据的问题通常是通过使用可以从数据验证声明推断 OpenAPI 规范的插件扩展数据验证工具来解决的。然而,相反的情况通常是不可能的,即从 OpenAPI 模式开始并实例化数据验证器。此外,从验证声明生成的 OpenAPI 往往不完整。

如何根据 Python 中的 OpenAPI3 规范验证 HTTP 请求数据(最好以通用且与框架无关的方式)?

python rest openapi
3个回答
4
投票

OpenAPI 3JSON Schema 的大部分兼容 - 阅读文档

您可以安装适用于 Python 的 json schema 包装器并验证您的 JSON。


1
投票

至于Q1 2019没有这样的工具。 现有工具的最佳列表是 https://openapi.tools/#data-validators

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

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


0
投票

您可以使用 connexion 来验证请求和响应。初始服务器实现可以根据 OpenAPI 规范生成。

© www.soinside.com 2019 - 2024. All rights reserved.