【问题标题】:Which graphql-spring-boot-starter should I choose?我应该选择哪个 graphql-spring-boot-starter?
【发布时间】:2019-06-12 13:25:56
【问题描述】:

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

我发现有两个工件。

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

我应该选择哪一个?

【问题讨论】:

    标签: spring-boot graphql graphql-java


    【解决方案1】:

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

    如果您使用的是纯 graphql-java(或尚未使用任何东西并希望以模式优先的方式进行开发),您可能应该选择com.graphql-java:graphql-spring-boot-starter

    Spring 本身有一个实验性的(到目前为止非常简单)启动器(org.springframework.boot:spring-boot-starter-weborg.springframework.boot:spring-boot-starter-webflux),它似乎是基本 graphql-java 启动器的继承者。

    如果您想采用代码优先(我认为是 still schema-first,更好),请使用 graphql-spqr-spring-boot-starter,它将为您生成 GraphQL 模式和端点,无需额外代码。这是公开 Spring 服务的最快方式。有一个示例项目here。我是那个项目的主要作者,所以这是一个无耻的插件,但我真的相信它在可用性方面领先于其他项目。

    还有 Netflix 的 DGS (com.netflix.graphql.dgs:graphql-dgs-spring-boot-starter)。它也是模式优先的,但与纯 graphql-java(或 Spring,目前)相比,它具有更多开箱即用的特性(因此也有更多的意见)。我没有这方面的第一手经验,但它有据可查,因此您应该可以轻松找到所需的内容。

    如果您已经在使用 graphql-java-tools,您可能希望使用 com.graphql-java-kickstart:graphql-spring-boot-starter,因为它们打算一起使用。

    【讨论】:

    • 我以前用过你的项目,发现它很容易使用。我不知道其他项目。我可能会检查他们的自我教育。谢谢。
    • 另外应该提到 Netflix 提供了 DGS 框架,这是一个建立在 graphql-java 之上的抽象。它是专门为整合到 Spring 中而构建的 :) netflix.github.io/dgs
    猜你喜欢
    • 2017-12-15
    • 2020-09-23
    • 2021-12-13
    • 2021-06-01
    • 2021-05-07
    • 2014-04-07
    • 2016-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多