如何在没有数据获取器的情况下为 graphql-java 配置 REST 控制器?

How to configure REST controller for graphql-java without datafetcher?

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

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

谢谢!

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

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

解析器是使用 this amazing plugin 作为代码生成器实现的。