GraphQL Java 类生成器 [关闭]

Posted

技术标签:

【中文标题】GraphQL Java 类生成器 [关闭]【英文标题】:GraphQL Java Class Generator [closed] 【发布时间】:2018-12-30 16:57:04 【问题描述】:

我想深入研究使用 Java 的 graphQL。我想查询现有的 graphQL 服务。到目前为止,我发现有一些方法可以从您的 POJO 类中以 JSON 或 IDL 格式生成 graphQL 模式文件,但反之则不然......? 据我到目前为止所了解的,我必须自己创建 Java 类来“表示”我将从查询中收到的对象。但是我想使用的服务有大量的端点和查询,而且我自己编写每个 pojo 类的需求听起来好像我错过了一些东西......我认为必须有一种方法来生成存根,就像我习惯从 REST API 框架一样使用招摇或 yaml 文件? 那么...如何仅给定模式文件就自动生成 pojo 类? 我已经在 graphql-java 阅读了模式优先方法的描述,但他们也假设自己编写 pojo 类。

谢谢

【问题讨论】:

到目前为止我发现了什么,HTH: (1) a similar SO question (with links in answer); (2)Nodes, GraphQL for the JVM; (3)Nodes on GitHub; (4)LiveGQL, subscriptions on WebSockets; (5)Awesome list of GraphQL & Relay 【参考方案1】:

您可以使用构建工具的插件来为 GraphQL 类型/输入/接口/枚举/等生成 POJO,并为查询/突变/订阅生成接口。全部基于您的 GraphQL 架构。

项目链接:https://github.com/kobylynskyi/graphql-java-codegen

它为您的构建工具提供以下插件:

Maven 插件:https://github.com/kobylynskyi/graphql-java-codegen/tree/master/plugins/maven Gradle 插件:https://github.com/kobylynskyi/graphql-java-codegen/tree/master/plugins/gradle SBT 插件:https://github.com/kobylynskyi/graphql-java-codegen/tree/master/plugins/sbt

【讨论】:

嗨,我尝试了 gradle 插件。我看到嵌套查询的一个缺点是,假设有一个带有嵌套 Cost 对象的产品对象,以及一个通过 id 获取产品的查询。生成的存根用于 methdo productById(),无论请求的成本如何,它都会始终查询 Cost 对象。我们可以取消这种紧密耦合吗? 当然。您可以使用建议的方法在以下 repo 中创建问题:github.com/kobylynskyi/graphql-java-codegen

以上是关于GraphQL Java 类生成器 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 GraphQL 生成 Dart - graphql 到 dart 生成器

graphql-java:如何在以编程方式生成 graphql 模式时添加自定义标量类型?

从 Java 项目生成 UML 类图 [关闭]

如何使用 Amplify 为 GraphQL API (AWS AppSync) 生成类

GraphQL 模式生成

动态生成 GraphQL 模式支持