如何将 GraphiQL 与 Spring-Boot 集成?

How to integrate GraphiQL with Spring-Boot?

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

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

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

如果有人能为我提供任何一种方法的想法,我将不胜感激。

您在 git 中有您的设置示例吗?

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

关于你的第二点:"I googled GraphiQL+Spring but all solutions are with graphql-java-spring-boot-starter."

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

在 GraphiQL 上:

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

可以在属性中启用: graphql.graphiql.enabled=真 它可以通过 root url +/graphiql example http://localhost:8080/graphiql

访问

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