【问题标题】:How can the client side validation be disabled in the python code generated from OpenAPI 3.x spec如何在从 OpenAPI 3.x 规范生成的 python 代码中禁用客户端验证
【发布时间】:2023-02-03 06:35:03
【问题描述】:

我有一个应用程序,需要使用内部开发的 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 调用期间失去了验证功能。

【问题讨论】:

    标签: python-3.x swagger-codegen openapi-generator


    【解决方案1】:

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

    configuration 对象还包含一个属性 client_side_validation,它似乎是为此目的而设计的,但目前还没有实现。

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

    【讨论】:

      猜你喜欢
      • 2022-06-15
      • 1970-01-01
      • 2021-05-16
      • 2018-03-02
      • 2016-06-29
      • 1970-01-01
      • 2021-08-08
      • 1970-01-01
      • 2023-03-03
      相关资源
      最近更新 更多