我正在寻找Java中的GraphQl客户端的建议。

问题描述 投票:0回答:1
DGSFramework,它与

Springboot集成,并具有

notation

支持。但是,在得出结论之前,如果我能在以下方面进行不同的Java客户的比较,真的很感激: 功能的设置,例如支持扩展Java标量类型等。 正在积极开发以及广泛使用的人。

限制如果有的话 simple且易于使用

opensource? 如果尽可能地,请分享各自的链接。 Edit:此答案侧重于您提到的Spring-boot,侧重于GraphQl Java服务器。如果您追求GraphQl Java客户端,我建议您使用apollo客户端,它易于使用,并且可以完成您可能需要的一切。 disclaimer:

我从未使用过DGS,并且我从未在去年积极使用GraphQl-Java,事情可能已经改变了。我尝试了GraphQl-Java-Tools和SPQR。这个答案是有意义的。
    graphQl实现
  1. Graphql-Java
  2. 在DGS之前。它是开源的,您会发现许多项目已建立在其上。可以在
  3. graphl-java存储库中找到添加到GraphQl-Java本身的项目,使GraphQl-Java非常模块化且满足您的需求。
  4. 例如:
  5. https://github.com/graphql-java/graphql-java-extended-scalars
  6. 向GraphQl-Java添加了扩展标量支持
https://github.com/graphql-java/graphql-java-extended-validation

提供字段验证

java graphql graphql-java java-client
1个回答
1
投票
graphql-java是详细的,我不建议按原样使用它。相反,我建议使用以下项目之一。

https://github.com/kobylynskyi/graphql-java-codegen从模式下,从模式下生成您的graphql server/client https://github.com/leangen/graphql-spqr

or

https://github.com/Enigmatis/graphql-java-annotations follow a code first approach and makes a very efficient use of annotation to generate your schema from your code (spqr also provide a spring-boot starter) https://github.com/graphql-java-kickstart/graphql-java-tools

使用架构第一种方法,使您可以创建自己的DTO。它需要大多数锅炉板代码。这是弹簧友好的(如果用于弹簧框架,则GraphQl-Java-Tools解析器将非常直观),并且具有弹簧靴的启动。模式解析器和类发现功能强大但模块化。 Features

在功能的术语中,所有这些项目都利用GraphQl-Java的功能,它们将非常相似。 活动发展和社区采用

昨天昨天更新了Graphql-Java-Tools,SPQR和GraphQl-Java-Notiations去年,一月份的GraphQl-Java-Codegen。从阅读Stackoverflow问题,GraphQl-Java-Tools和SPQR似乎是最受欢迎的 - 但我可能错了。 limitations

我没有我能想到的。
  • 使用
  • SPQR为我赢得了这一胜利,注释确实是直观的,会让您迅速发展。还有一个弹簧启动器和一些示例项目。 GraphQl-Java-Tools更为复杂,但它们具有良好的文档和示例项目。 我会为较小的/新项目和GraphQl-Java-Tools推荐SPQR,用于较大的项目或现有项目,这些项目需要在现有代码库中构建GraphQL-API。对于我的个人项目,我搬到了SPQR,从不后悔。
  • opensource
本答案中引用的所有项目都是开源的。

最终单词:

我认为代码优先的方法(在Java中定义您的API,让库生成您的架构)或模式优先的方法(在模式文件中定义您的API,让库生成代码)可能是确定要使用哪个库的最重要因素。您可以阅读我的答案和kaqqao(spqr作者)出色的答案

以了解更多信息。

如果您遵循模式 - 首先方法并希望生成客户端类,我建议您使用https://github.com/kobylynskyi/graphql-java-codegen.

这里是如何使用生成的类构建请求并从Java调用GraphQl API的一些示例:

gradle示例 - client

mavenexample-client

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.