如何从protobuf文件生成OpenAPI 3文档

31
我有一个由protobuf生成的API,并且我想生成符合OpenAPI 3规范的文档。我看了很多工具,但没有找到适合的组合。请问是否有人知道我可以遵循的从protobuf到OpenAPI 3的路径?
3个回答

6
我最近搜索到了这个包: protobuf2swagger 它可以在CLI中运行,并需要一个js配置文件。这个包解决了我的问题。

4
谷歌在GitHub上有一个存储库,可以实现将JSON和YAML OpenAPI描述转换为等效的Protocol Buffer表示,其链接是:repository。该存储库包含了OpenAPI v3(和v2)的示例,展示了等效protobuf代码的外观。
这里有一篇medium文章,以分步骤方式解释了实现gRPC + HTTP(分别使用protobuf和swagger)服务器的端到端实现与文档编写。这是一个OpenAPI v2的示例,但类似的概念也适用于OpenAPI v3。
还有其他存储库也能实现类似的功能,但我建议使用来自源头的源代码。 :)
希望这有所帮助!

18
第一个和最后一个链接是将OAS转换为protos/gRPC,而不是将protos/gRPC转换为OAS。中间的链接是一篇关于 https://github.com/grpc-ecosystem/grpc-gateway 的文章,它可以将gRPC转换为OAS,但只支持OAS 2。 - smparkes
我希望能够在Quarkus / Java项目中集成grpc-gateway的方法。 - Espresso
2
不幸的是,这些链接都没有回答楼主非常具体的问题(我也在寻找答案)。 - luis.espinal

4

看起来你需要的是与 protoc-gen-openapi 相关的it技术内容,它来自于gnostic。但是它似乎已经被放弃了且不能正常工作。

不确定它是否有效。


1
这里有一些关于此事的更新:https://github.com/google/gnostic/issues/257 - CMCDragonkai
它已经迁移到 https://github.com/google/gnostic/tree/master/cmd/protoc-gen-openapi。 - hantian_pang
它不起作用。看一下他们示例中的“protos”。它们都使用了一些愚蠢的语法。如果你使用正常的protobuf语法,它就不起作用。 - JonTroncoso

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接