首页 文章

Swagger Codegen反向兼容性

提问于
浏览
0

我已经开始使用Swagger了 . 此时,我收到了swagger 1.2版的招摇文件 . 但是,如果我想用这个文件生成一些东西,它只是给了我一堆错误,看起来更像它只是忽略了我的swagger文件在1.2版规范中的事实而且只是继续并且针对版本2.0对其进行验证规范 .

我得到的一些错误:

  • 缺少必需的属性:路径

  • 不允许使用其他属性:models,apis,resourcePath,swaggerVersion,apiVersion

  • ......

最后一个错误告诉我apiVersion是未知的,虽然gitHub页面声称最新的stable应该与1.0,1.1,1.2和2.0版本兼容 . 有没有办法我可以"force"发电机认为1.2规格而不是2.0规格?

我也验证了官方的1.2规范yaml文件:https://raw.githubusercontent.com/swagger-api/swagger-codegen/v2.0.18/samples/yaml/pet.yml

但是当你在Swagger编辑器中加载它时会出现相同的错误:http://editor.swagger.io/#/

1 回答

  • 2

    swagger-codegen 项目依赖于swagger-parser,它有一个名为 swagger-compat-spec-parser 的模块,在传递给代码生成器之前,它实际上会将1.2规范转换为2.0格式 .

    您看到的错误是因为转换失败了 . 你可以在本地保存swagger 1.2文件,调整它们,然后重新运行处理 .

    1.2到2.0转换的挑战是swagger 1.2最初没有架构来验证 . 因此,存在大量无效的swaggers,并且在技术上不可能将1.2规范中的所有不同问题转换为2.0 .

    也就是说,我们总是试图让工具更好,所以如果你在1.2转换器中发现"repeatable"错误,在 swagger-spec 项目中提出一个问题,我们将看到修复它(大多数都很容易) .

相关问题