首页 > 解决方案 > 如何在没有数据提取器的情况下为 graphql-java 配置 REST 控制器?

问题描述

我目前正在根据此处的教程在 Springboot 中使用 DataFetcher for GraphQL-Java 。这很好用,但我正在寻找另一种在不实现 DataFetchers 的情况下获取端点的方法,因为我必须(1)实现解析器方法,然后(2)为相应的 DataFetcher 创建一个单独的方法,这似乎是额外的工作. 是否有另一种方法可以整合它以通过某种形式的 Rest 控制器公开我的 GraphQL API?我环顾四周,但没有找到任何可行的解决方案。最好(不确定它是否相关)还有一种更好的方法来注释端点(目前在带有 RuntimeWiring 的链接示例中提供,我也希望将其删除)。

简而言之,我希望在 Springboot 中不需要 RuntimeWiring 和 DataFetcher(主要是为了删除同一方法的双重代码并提高可维护性),而是有另一种方法来为我的 GraphQL 配置全局 REST 控制器- Java 代码,同时还有另一种注释端点的方法(可能是在已实现方法之上的一些注释器)。

谢谢!

标签: javaspring-bootrestgraphqlgraphql-java

解决方案


设法通过使用graphql.kick.start.tools'来修复它SchemaParserGraphQLResolver如下所示:

return SchemaParser.newParser()
        .files(schemaFiles)
        .scalars(scalars)
        .resolvers(resolvers)
        .dictionary(typeDictionary)
        .build()
        .makeExecutableSchema();

使用这个惊人的插件作为代码生成来实现解析器。


推荐阅读