提问者:小点点

如何在从 OpenAPI 3.x 规范生成的 python 代码中禁用客户端验证


我有一个应用程序,需要使用内部开发的python自动化进行测试。最初,该应用程序是使用Swagger 2.x规范开发的。现在它被迁移到使用Open API 3.x

当它在 Swagger 2.x 规范上时,我曾经使用 swagger-codegen-cli-2.4.21.jar 来生成 python 客户端库,我们最终使用这些库来编写自动化。使用 2.4.21 jar,我们可以禁用客户端验证 (configuration.py)

但是在迁移到 OpenAPI 3.x 后,我无法使用 2.4.21 jar,因为它不受支持。所以我使用 3.0.36 jar 来生成 python 客户端库。但这没有禁用客户端验证的选项(在 configuration.py 年)。这实际上会产生很多问题,因为我们在GET调用期间收到ValueErrors。

我看到有一些关于这个问题的讨论,但没有一个是足够确凿的,以至于它实际上是在3.x中固定的

https://github.com/OpenAPITools/openapi-generator/pull/4137

https://github.com/swagger-api/swagger-codegen/issues/5530

https://github.com/swagger-api/swagger-codegen/pull/9717

所以我需要帮助,以了解这是否仍然是一个开放的问题(或)它是固定在一些3.x版本..?如果还没有修复,有没有解决这个问题的方法..?

到目前为止,我们正在注释所有的ValueErrors来解决这个问题,但是不建议这样做,因为我们在POST调用期间会失去验证功能。


共1个答案

匿名用户

python-nextgen(最新的Python生成器)上,它没有实现(您可以在创建配置对象时指示可以使用disabled_client_side_validations跳过哪种类型的验证,也许对您有用?

配置对象还包括一个属性client_side_validation该属性似乎用于此目的,但目前没有实现。

目前唯一的选择是在所有操作中保留或删除它。