前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GraphQL实践8——Netflix Dgs Graphql代码生成

GraphQL实践8——Netflix Dgs Graphql代码生成

原创
作者头像
F嘉阳
发布2022-10-31 09:04:57
1K0
发布2022-10-31 09:04:57
举报
文章被收录于专栏:graphqlgraphql

功能介绍

DGS官方开发了识别schema配置生成对应类型、测试类的代码生成器,而Maven插件则由社区维护

Maven代码生成插件

新增依赖

代码语言:html
复制
<dependency>  
    <groupId>com.netflix.graphql.dgs.codegen</groupId>  
    <artifactId>graphql-dgs-codegen-client-core</artifactId>  
    <version>5.1.17</version>  
</dependency>

还需要新增构建插件

代码语言:html
复制
			<plugin>
                <groupId>io.github.deweyjose</groupId>
                <artifactId>graphqlcodegen-maven-plugin</artifactId>
                <version>1.24</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <addGeneratedAnnotation>true</addGeneratedAnnotation>
                    <packageName>top.fjy8018.graphsqldemo.generated</packageName>
                    <schemaPaths>
                        <param>src/main/resources/graphql/actor.graphqls</param>
                    </schemaPaths>
                    <!-- 生成测试客户端 -->
                    <generateClient>true</generateClient>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>add-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>${project.build.directory}/generated-sources</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

插件配置指引:deweyjose/graphqlcodegen: Maven port of the Netflix Gradle code generation plugin for graphql.

编译

执行

代码语言:shell
复制
mvn clean package

即可生成对应的类

image-20221028212820748
image-20221028212820748

存在问题

IDEA默认不识别target目录下的资源文件,生成后会导致无法引用

image-20221028213042840
image-20221028213042840
解决方法

需要手动将对应的生成目录配置为Source Root即可

image-20221028213010859
image-20221028213010859
image-20221028213109840
image-20221028213109840

总结

DGS官方推荐开发者优先使用代码生成器生成标准类库后再开发,可以减少开发量

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 功能介绍
  • Maven代码生成插件
    • 新增依赖
      • 编译
        • 存在问题
          • 解决方法
      • 总结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档