我正在用spring boot和graphql开发一个新项目。我对如何进行处理感到困惑,因为有两种开发方法,一种是通过graphqls文件和基于注释的方法。我更喜欢基于注释的方法,但它们是否稳定。范例:https://github.com/leangen/graphql-spqr。
答案 0 :(得分:2)
我不认为“如何进行”这个问题有好有坏。 有两种不同的方法来构建您的graphql服务器(使用graphl-java,graphql-java-tools,graphql-spqr),每种方法都有其优点和不便之处。所有这些库都建议使用springboot启动器。请注意,我从未使用过graphql-spqr。
首先使用架构(使用graphql-java或graphql-java-tools)
使用这种方法,您首先创建一个SDL文件。 graphql库将对其进行解析,您要做的“所有”工作就是将每个graphql类型连接到其数据提取器。 graphql-java-tools甚至可以为您完成接线。
优势
不便
代码优先(使用graphql-java或grapqhl-java-tools或graphql-spqr)
以编程方式构建graphql模式(通过使用graphql-spqr进行注释或通过在graphql-java中构建GraphQLSchema对象)
优势
不便
这是我对那些不同框架的看法,很高兴能证明我错了。最终决定取决于您的项目:大小,是否存在现有代码库等。
答案 1 :(得分:2)
我第二次AllirionX's answer,只是想添加一些细节。
首先,要回答您的问题:是的,SPQR已经相当稳定了一段时间。许多团队已在生产中成功使用它。仍然是0.X版本的唯一原因是缺少文档,但是API偶尔会发生一些小的突破性变化。
其次,我还想补充一点,代码先行并不意味着您也不能合同先行。实际上,我认为您仍然应该以这种风格发展。唯一的区别是您可以将合同编写为Java接口,而不是使用新的语言。因此,API是否随代码更改而更改完全取决于您。而且,如果出于任何原因需要SDL,则始终可以从可执行模式或自省结果生成SDL。