Swagger Codegen反向兼容性

时间:2016-05-23 11:10:26

标签: api swagger

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

我得到的一些错误:

  • 缺少必需的属性:路径
  • 不允许使用其他属性: 模型,的API,resourcePath,swaggerVersion,apiVersion
  • ...

最后一个错误告诉我apiVersion是 unknown ,尽管gitHub页面声称最新的stable应该与1.0,1.1,1.2和2.0版本兼容。有没有办法可以“强迫”生成器考虑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 个答案:

答案 0 :(得分:2)

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

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

1.2到2.0转换的挑战是,swagger 1.2最初没有要验证的模式。因此,存在无效的swaggers lot ,并且在技术上不可能将1.2规范中的所有不同问题转换为2.0。

尽管如此,我们总是试图让工具更好,所以如果你找到一个可重复的" 1.2转换器中的错误,在swagger-spec项目中提出问题,我们会看到修复它(大多数都很容易)。