当前位置: 首页 > 知识库问答 >
问题:

有没有办法使用spring boot starter应用程序graphql spring boot starter公开2个graphqlendpoint?

鲁成天
2023-03-14

目前我们正在使用

    <dependency>
        <groupId>com.graphql-java-kickstart</groupId>
        <artifactId>graphql-spring-boot-starter</artifactId>
        <version>${graphql-spring-starter.version}</version>
    </dependency>

有了这些,我们将使用/graphqlendpoint公开我们的graphqlapi。我希望有这样的多个endpoint,/graphql1和/graphql2,以便根据endpoint定义不同的响应格式。最好的方法是什么?非常感谢您的任何意见。

共有1个答案

公良泰宁
2023-03-14

它只是归结为创建一个GraphQLHttpServlet并配置它的上下文路径,在封面下,它使用自动配置GraphQLWebAutoConfigance将一个GraphQLHttpServlet定义为bean,并将上下文路径配置为/graql

这意味着您可以参考GraphQLWebAutoConfiguration的工作方式,并创建另一个注册到其他上下文路径的GraphQLHttpServlet实例。

要点是,要在Spring启动中注册一个Servlet,您可以简单地创建一个Servlet注册表Bean来包装您要创建的HttpServlet。有关更多详细信息,请参阅文档。

一个简单的例子是:

@Bean
public ServletRegistrationBean<AbstractGraphQLHttpServlet> fooGraphQLServlet() {
    //Create and configure the GraphQL Schema.
    GraphQLSchema schema = xxxxxxx;

    GraphQLHttpServlet graphQLHttpServlet = GraphQLHttpServlet.with(schema);
    ServletRegistrationBean<AbstractGraphQLHttpServlet> registration = new ServletRegistrationBean<>(
                    graphQLHttpServlet, "/graphql2/*");

    registration.setName("Another GraphQL Endpoint");
    return registration;
} 
 类似资料:
  • 我有一个使用SpringCloud配置的SpringBoot应用程序,但我想在SpringBootApps引导程序中加密SpringCloud配置密码。yml文件。有办法做到这一点吗?下面是一个例子。 Spring Boot应用程序bootstrap.yml

  • 我们正在运行weblogic,似乎有内存泄漏-我们最终用完了堆空间。 我们在服务器上有5个应用程序(5个war部署)。 您能想到一种方法来收集每个应用程序的内存使用情况吗? (然后我们可以通过查看相应应用程序中的代码来集中搜索。) 我已经运行jmap来获取堆转储并在jvisualvm中加载结果,但不清楚大部分对象来自何处——例如字符串。 我在想,weblogic可能会在每个应用程序中使用单独的类加

  • 问题内容: 我们有一个相当复杂的应用程序,它需要尽可能多的屏幕空间,因此视网膜显示Mac Books很适合此用途。 但是,似乎在Swing中,这些设备使用点而不是像素。它们使我可以将图标更改为此处讨论的高分辨率版本。但是由于我们做了很多复杂的图形和组件叠加,所以我只想使用“真实像素”。明确地说,我对修复模糊的图像或图标(对我而言不实用)不感兴趣,只是为了禁用像素加倍。 问题答案: 据我所知,从JD

  • 由于没有快速的lambda计算器,我使用上面的策略将非类型化lambda演算的术语编译为Haskell,以便快速计算它们。我对它的性能印象深刻:该程序创建了一个从到的数字列表,并在我的计算机上在不到一秒钟的时间内将它们相加。这比我预期的要快得多--只比Haskell直接等价物慢4倍--并且足以对我的目标有用。但是,请注意,为了满足类型系统的需要,我必须将函数和术语包装在fun/num构造函数下面。

  • 我找不到docker文件。NET框架应用程序在linux上,我需要在托管在ec2 linux服务器上的jenkins上运行docker构建,但只有。NET Core可以在linux上构建。

  • 我用创建了一个Android应用程序。它的工作只是完美的,但我有一个小问题。 我在中实现的web应用程序有一个Google drive按钮,当我在PC上的web浏览器上单击时,该按钮会在一个新的选项卡中打开Google authentication页面,但当我在移动应用程序中单击它时,它就不起作用了。 我只想让它重定向到用户喜欢的移动浏览器(chrome,opera等)。有办法做到吗?