如何将 OpenAPI Spec (Swagger 2.0) 转换为 proto3?

Posted

技术标签:

【中文标题】如何将 OpenAPI Spec (Swagger 2.0) 转换为 proto3?【英文标题】:How do you convert an OpenAPI Spec (Swagger 2.0) to proto3? 【发布时间】:2019-04-20 06:31:30 【问题描述】:

我进行了广泛的 Google 搜索,但找不到一个很好的工具来执行此操作。我能找到的最接近的是https://github.com/googleapis/gnostic,它允许将 OpenAPI 描述 (swagger.yaml) 转换为 .pb 文件或 .json 文件。我想知道是否有任何工具可以将此 .pb 文件转换为 .proto proto3 文件?

我也试过https://github.com/NYTimes/openapi2proto,但不幸的是有一些情况没有得到正确处理。

提前感谢您的帮助!

【问题讨论】:

【参考方案1】:

我知道这个问题很老了,但我一直在徘徊,似乎同时情况发生了变化。所以我会为其他人发布答案,懒得搜索:)

目前有几个选项可以将 OpenApi 2/3 转换为 Protobuf:

OpenAPITools/openapi-generator 从 4.1.2 版本开始支持此功能,请查找更多 here。 googleapis/gnostic 也可以做到这一点,找到更多here。 nytimes/openapi2proto 一个用 go 写的工具,找到更多here。 也许还有更多...?如果我错过了,请添加。

【讨论】:

以上是关于如何将 OpenAPI Spec (Swagger 2.0) 转换为 proto3?的主要内容,如果未能解决你的问题,请参考以下文章

如何将两个 openapi/swagger 模式组合成一个模式

如何使用 Swagger\OpenAPI 记录 GraphQL?

如何在 OpenAPI (Swagger) 中定义枚举?

如何在 Swagger (OpenAPI) 中发布文件?

如何注释 OpenAPI (Swagger) 2.0 中已弃用的字段?

如何在 OpenAPI / Swagger 中递归引用封闭类型定义?