如何从GraphQL模式生成Kotlin和/或Java数据模型
我当前的项目已经切换到GraphQLAPI,我希望自动生成匹配查询/请求/响应的模型对象 我所需要的只是模型类,我不想在我的应用程序中在运行时使用Apollo之类的工具 我要求模型类为Java或Kotlin 我找到了这个 然而,这似乎需要我自己创建模型类 根据这句话,“如何从GraphQL模式生成Kotlin和/或Java数据模型,graphql,Graphql,我当前的项目已经切换到GraphQLAPI,我希望自动生成匹配查询/请求/响应的模型对象 我所需要的只是模型类,我不想在我的应用程序中在运行时使用Apollo之类的工具 我要求模型类为Java或Kotlin 我找到了这个 然而,这似乎需要我自己创建模型类 根据这句话,“GraphQL Java工具将期望得到三个映射到GraphQL类型的类:Query、Book和Author。Book和Author的数据类很简单:” 我错过了什么 当我尝试使用Apollo cli下载我的模式时,出现了此错误 ~
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,请您更具体一点。您使用了哪个插件。你采取了哪些步骤。您在哪里收到了意外的结果。请详细说明。