GraphQL:整合Spring Boot

本文介绍了如何在Spring Boot中整合GraphQL,特别是针对SQL和NOSQL解决方案。重点讨论了Yahoo/Elide和GraphQL-SPQR库。Elide提供自动从Java Bean生成GraphQL Schema和权限管理等功能,而GraphQL-SPQR则允许通过Service注解快速开发GraphQL服务。同时,文中给出了基于GraphQL-SPQR的示例,并提出了改进方案,如简化Query操作和尝试打通Hibernate OGM。
摘要由CSDN通过智能技术生成

GraphQL:整合Spring Boot

GraphQL在Java中的应用要解决的第一个问题便是如何根据Java Bean自动生成GraphQL Schema,定义多套基本上是不可接受的,在现有加一些注解还是能忍的。

1. SQL解决方案

关系型数据库的解决方案已经做得比较好了,目前Yahoo/Elide应该是做得最好的,结合elide-spring-boot-starter可以轻松完成。虽然文档不详细,但是对基本了解是够了,特点如下(如果考虑其它方案可以一一对比,应该是比elide在便利性上要差一些):

  1. 由Java Bean自动生成GraphQL的Schema,无需额外注解;

  2. 可以限定顶级访问对象(隐藏一些数据不在顶层);

    @Include(rootLevel = true)
    
  3. 无需Repository/Service之类操作DB的代码,结合了RQL,让filter操作更简单;

  4. 定义了比较完善的操作,共6种

  5. 其它:有权限管理,实现依据Relay规范

可以看完这些再来跟一些其它方案比较比较(不比了,实在是没得比,Yahoo毕竟曾经是一流互联网企业)。

用例可参考GraphQL初探:Java服务示例及Yahoo/Elide文章中的3.2部分。

2. NOSQL解决方案

2.1 Elide

很不幸,Elide只是社区大概有句“也许可以通过Hibernate OGM实现”,简单做了尝试,没能做出一个可用的来。

2.2 GraphQL-SPQR

GraphQL-SPQR: Java 8+ API for rapid development of GraphQL services

注意:GraphQL-SPQR可不是只能做NOSQL,放在这里只是说灵活性比

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值