如何通过 Graphql 模式生成 java 实体
Posted
技术标签:
【中文标题】如何通过 Graphql 模式生成 java 实体【英文标题】:How to generate java entity by Graphql schema 【发布时间】:2020-05-28 16:32:31 【问题描述】:我是graphql java客户端开发的新手。最近遇到一个问题,如何通过graphql模式定义生成java实体。由于在我这边,架构总是在另一侧发生变化,所以我想要一种自动生成java实体类的方法,而不是手动读取架构然后更改代码。如果有这种要求的做法?谢谢。
【问题讨论】:
【参考方案1】:您可以查看以下maven plugin。它将帮助您从 .graphqls
文件生成 Java 类。
假设您只有一个定义 GraphQL 模型的文件,名为 myGraphqls,我将使用此插件如下:
<build>
<plugins>
<plugin>
<groupId>io.github.kobylynskyi</groupId>
<artifactId>graphql-codegen-maven-plugin</artifactId>
<version>1.2.3</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<graphqlSchemaPaths>
<graphqlSchemaPath>$project.basedir/src/main/resources/graphql/myGraphqls.graphqls</graphqlSchemaPath>
</graphqlSchemaPaths>
<outputDir>$project.build.directory/generated-sources/graphql</outputDir>
<packageName>com.graphql.model</packageName>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
运行 maven 后,您将能够在 generated-sources 文件夹中找到名为 graphql 的文件夹,其中包含在包 com 下生成的类。 graphql.model.
【讨论】:
嗨,谢谢你的信息。我试过这个插件,但它会生成一堆 spring boot 依赖项,这会与我的原始 spring 框架冲突。这能解决吗? 不错的插件,但是如果你只想生成 POJO,依赖太多了。以上是关于如何通过 Graphql 模式生成 java 实体的主要内容,如果未能解决你的问题,请参考以下文章
使用 Hasura graphql 模式时如何自定义 graphql-code-generator 生成的字段的类型