我应该选择哪个 graphql-spring-boot-starter ?

2024-04-14

我正在考虑将 GraphQL 功能添加到我的 Spring Boot 应用程序中。

我发现有两个工件可以做到这一点。

One is com.graphql-java-kickstart:graphql-spring-boot-starter另一个是com.graphql-java:graphql-spring-boot-starter.

我应该选择哪一个?


这些是不同的 Starter(由不同的团队)提供不同的功能,因此没有正确或错误的答案。以下是我所知道的可用内容的快速概述:

由 graphql-java 团队制作的原始启动器(com.graphql-java:graphql-spring-boot-starter我相信,现在已经不复存在并被 Spring GraphQL 取代。

Spring GraphQL (org.springframework.boot:spring-boot-starter-web or org.springframework.boot:spring-boot-starter-webflux)旨在用于模式优先开发,相对简单且功能不是很丰富,但它易于使用并且与其他 Spring 项目(例如 WebFlux 和 Spring Security)配合良好。

如果你想先代码(我认为是仍然是模式优先 https://github.com/leangen/graphql-spqr#still-schema-first,更好),使用graphql-spqr-spring-boot-starter https://github.com/leangen/graphql-spqr-spring-boot-starter,它将为您生成 GraphQL 架构和端点,无需额外代码。这是公开 Spring 服务的最快方法。有一个示例项目here https://github.com/leangen/graphql-spqr-samples/tree/master/spring-boot-starter-sample。我是该项目的主要作者,所以这是一个无耻的插件,但老实说,我相信它在可用性方面比其他项目领先光年。下一个版本将基于 Spring GraphQL,因此它也应该继承大部分/所有优点(例如目前缺乏的 RSocket 支持)。

还有 Netflix 出品的《DGS》(com.netflix.graphql.dgs:graphql-dgs-spring-boot-starter)。它也是模式优先的,具有大量功能,但也非常固执己见。我对它没有第一手经验,但它有很好的文档记录,所以你应该可以毫无问题地找到你需要的东西。

如果您已经在使用graphql-java-tools(由 Kickstart 团队维护),您可能会想要com.graphql-java-kickstart:graphql-spring-boot-starter因为它们是一起使用的。我不知道这些天这个项目的维护有多积极。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该选择哪个 graphql-spring-boot-starter ? 的相关文章

随机推荐