有没有办法从 protobuf 生成 GraphQL 模式?

Posted

技术标签:

【中文标题】有没有办法从 protobuf 生成 GraphQL 模式?【英文标题】:Is there a way to generate a GraphQL schema from a protobuf? 【发布时间】:2017-11-07 22:33:03 【问题描述】:

我有一个相当大/复杂的 API protobuf 定义,我想知道是否有一个方便的工具可以从这个 protobuf 的子集自动生成文本 GraphQL 模式及其(嵌套)类型?

我正常使用 Node.js,但我愿意接受其他语言来生成架构。

【问题讨论】:

有谁知道这方面是否有任何更新?希望自动生成 proto 到 GraphQL 模式。 【参考方案1】:

如果你愿意使用 GoLang,这里有一个 protobuf 到 GraphQL 转换器

https://github.com/opsee/protobuf

当前小工具 图ql

graphql 小工具将为 protobuf 消息生成一个 graphql 模式,以便与 go-graphql 包一起使用。它定义了用于文件、消息和字段的扩展。查看使用示例——插件生成的文件是flavortown.pb.go和flavortownpb_test.go。

【讨论】:

它并没有真正回答我的问题,因为它生成 Go 代码,而不是纯文本模式定义,但无论如何谢谢。 链接结果为archived【参考方案2】:

Rejoiner 将从 protobuf 源(例如 gRPC 微服务)创建统一的 GraphQL 模式。

http://rejoiner.io/

https://github.com/google/rejoiner

【讨论】:

您能补充一些关于它的额外解释吗?我们不应该只依赖外部内容,这些内容可能会改变或离线...... 来自问题:“自动生成文本 GraphQL 模式的便捷工具”。 Rejoiner 从什么时候开始生成文本 GraphQL 模式?你可以自省,当然,但这很不方便。【参考方案3】:

此项目从 protos 生成 graphql 模式:https://github.com/tmc/protoc-gen-graphql

【讨论】:

以上是关于有没有办法从 protobuf 生成 GraphQL 模式?的主要内容,如果未能解决你的问题,请参考以下文章

Protobuf-net 序列化错误 =“一旦生成了序列化程序,就无法更改类型”

有没有办法标记每个 protobuf-net 记录的结尾

如何在 xamarin ios pcl 中使用 protobuf-net

在 protobuf-net 中,有没有办法指定在序列化/反序列化给定类型时要使用的自定义方法?

从 protobuf-net 中的自定义 RuntimeTypeModel 生成 .proto 文件

有没有办法让以前公开的无参数构造函数私有化,而不会对 protobuf(反)序列化进行重大更改?