如何从GraphQL模式生成Kotlin和/或Java数据模型

如何从GraphQL模式生成Kotlin和/或Java数据模型,graphql,Graphql,我当前的项目已经切换到GraphQLAPI,我希望自动生成匹配查询/请求/响应的模型对象 我所需要的只是模型类,我不想在我的应用程序中在运行时使用Apollo之类的工具 我要求模型类为Java或Kotlin 我找到了这个 然而,这似乎需要我自己创建模型类 根据这句话,“GraphQL Java工具将期望得到三个映射到GraphQL类型的类:Query、Book和Author。Book和Author的数据类很简单:” 我错过了什么 当我尝试使用Apollo cli下载我的模式时,出现了此错误 ~

我当前的项目已经切换到GraphQLAPI,我希望自动生成匹配查询/请求/响应的模型对象

我所需要的只是模型类,我不想在我的应用程序中在运行时使用Apollo之类的工具

我要求模型类为Java或Kotlin

我找到了这个

然而,这似乎需要我自己创建模型类

根据这句话,“
GraphQL Java工具将期望得到三个映射到GraphQL类型的类:Query、Book和Author。Book和Author的数据类很简单:

我错过了什么

当我尝试使用Apollo cli下载我的模式时,出现了此错误

~ -  $ npx apollo-cli download-schema $https://my.graphql.end.point/graphql --output schema.json
Error while fetching introspection query result: only absolute urls are supported

当然,这是使用GraphQL时的一个基本要求,因此,如果我理解正确,那么您要做的就是a)从现有GraphQL端点下载并本地创建模式,b)从该模式创建java模型对象

要下载架构,可以使用。首先通过
npm install-g graphql cli安装,然后运行
graphql init
设置
.graphqlconfig
。最后运行
graphql get schema
从定义的端点下载模式

接下来,您需要利用Java代码生成器,该生成器采用GraphQL模式并创建:

  • GraphQL查询、转换和订阅的接口
  • GraphQL联合的接口
  • GraphQL类型的POJO类
  • 每个GraphQL枚举的枚举类
根据您的设置/偏好(如gradle vs maven),有多种选项:

我建议您查看第一个选项,因为它看起来有很好的文档记录,并且在生成所需的帮助程序后提供了充分的灵活性:

GraphQLJava生成器生成样板代码,并允许您 专注于特定于您的用例的内容。然后是跑步 代码不依赖于GraphQLJava生成器中的任何依赖项。 因此,您可以随时摆脱GraphQLJava生成器:只需将 在SCM中生成代码,仅此而已

在客户机模式下,只需一行 代码

例如:

Human-Human=queryType.Human({id name出现在homePlanet中
朋友{name}},“180”)

在此模式下,插件将生成:

一个java类用于查询对象,一个java类用于变异 对象(如果有),GraphQL的每个标准对象对应一个POJO 对象,所有必需的运行时实际上都作为源代码附加 进入项目:生成的代码是独立的。那么,你的 项目在运行时不依赖于来自的任何外部依赖项 GraphQLJava生成器


我的回答是否解决了您的问题,或者我还有什么需要补充的吗?@realAlexBarge,没有,我看不到生成Kotlin数据类或Java POJOCan,请您更具体一点。您使用了哪个插件。你采取了哪些步骤。您在哪里收到了意外的结果。请详细说明。