【问题标题】:How to integrate GraphiQL with Spring-Boot?如何将 GraphiQL 与 Spring-Boot 集成?
【发布时间】:2020-01-20 06:33:00
【问题描述】:

我的目标是在运行时使用 (1) GraphiQL IDE (2) 动态 GraphQL 模式在 Spring 上构建 GraphQL 服务器。我的 GraphQL 引擎是 GraphQL-Java。

在我的第一次尝试中,我使用 graphql-java-spring-boot-starter-webmvcgraphiql-spring-boot-starter。 GraphQL 服务器和 GraphiQL 都运行良好。 但是在graphql-java-spring-boot-starter-webmvc框架下,需要一个GraphQL类的@Bean。在这个 bean 中,模式是在服务器启动时加载的,因此无法更新。

在我的第二次尝试中,我不使用 graphql-java-spring-boot-starter-webmvc。相反,我选择 spring-boot-starter-web 来启动 Web 服务器并定义我自己的 RestController。这很容易更新 GraphQL 实例。但我没有找到与 GraphiQL 集成的方法。我用谷歌搜索了 GraphiQL+Spring,但所有解决方案都使用 graphql-java-spring-boot-starter

如果有人可以就这两种方法向我提供一个想法,不胜感激。

【问题讨论】:

标签: java spring-boot graphql-java graphiql


【解决方案1】:

您有 git 中的设置示例吗?

  • 这听起来像是一些配置问题。但是很自然地使用 graphql-java-spring-boot-starter-webmvc 你所有的*.graphql 模式应该在配置的模式资源路径中被拾取。检查您是否在 application.yml 中设置了路径,或者您的架构是否在配置的路径中(如果已设置或默认设置)。

关于你的第二点:“我用谷歌搜索了 GraphiQL+Spring,但所有解决方案都使用了 graphql-java-spring-boot-starter。”

  • 这对于快速指南和演示很有意义,因为使用 Springboot,管道以某种方式隐藏在您面前,因此您可以专注于手头正在演示的技术,在这种情况下 GraphQl。

在 GraphiQL 上:

  • 听起来您打算将此嵌入到您的应用程序中,但您可能不想在生产环境中这样做。根据您的用例,还有许多其他独立的替代方案,可为您提供 GraphiQL 的所有功能以及更多功能,例如 Altair Graphql ClientInsomnia 等等。李>

【讨论】:

  • 谢谢DaddyMoe。同意你的观点 graphql-java-spring-boot-starter 将简化我的开发工作。但是,这个框架不能满足我的要求,所以我必须使用常见的 spring web mvc + graphql-java。此外,我需要将 graphiql 引入我的项目中,因此我尝试在我的项目中使用 graphiql-spring-boot-starter(因此当然没有 graphql-java-spring-boot-starter)。所以必须自己处理graphql+spring和graphiql之间的通信。我没有找到足够的信息,所以我所有的尝试都失败了。现在我用 Vert.x + GraphQL-java 成功了
【解决方案2】:

可以在属性中启用: graphql.graphiql.enabled=true 它可以通过根 url +/graphiql 示例 http://localhost:8080/graphiql

访问

您可以在这里找到一个很好的详细示例:https://github.com/NoorKrichen/GraphQL-Spring-Boot-Example

【讨论】:

    猜你喜欢
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    相关资源
    最近更新 更多