7

我计划在我的 Spring Boot 应用程序中实现 Graphql。我在许多网站上搜索了许多用 Java 设置 Graphql 服务器的网站,并遇到了两种方法。

一个是像下面这样实现 GraphQlResolver

 public class MyResolver implements GraphQLResolver<ModelX>

另一个是通过实现 Datafetcher 参考:https ://www.graphql-java.com

@Component
public class MyDataFetcher implements DataFetcher<ModelX> {


@Override
public ModelX get(DataFetchingEnvironment environment) {
    // TODO Auto-generated method stub

}

}

请提供一些关于两种方法的差异以及其中最佳方法的信息

4

2 回答 2

12

DataFetcher来自graphql-javalibrary ,这GraphQL是迄今为止我在 Java 世界中所知道的唯一 Java 实现。

GraphQLResolver来自另一个名为的库 graphql-java-tools,它建立在graphql-java. 您可以认为它提供了一种方法,允许您以更高级别的方式构建 GraphQL 服务器,或者您可能会发现更方便的方式。最后,GraphQLResolver将以某种方式调用DataFetcher#get()以解析字段的值。

Spring 中类似的类比是graphql-javalike Servlet 而graphql-java-tools like SpringMVC

于 2019-06-12T09:43:06.060 回答
0

术语“解析器”是一个通用的 GraphQL 术语,与任何特定的 GraphQL 实现/框架/语言无关。GraphQL 中的每个字段都由GraphQL 服务器开发人员提供的称为解析器的函数提供支持。简而言之,解析器是将任何特定字段映射到任何特定响应的第一个逻辑命中。

Netflix DGS 库现已开源(截至 2020 年底),并引入了“DataFetchers”。在 DGS 世界中,DataFetchers 只是一种特定于 DGS 的实现解析器的方式。

阅读:

于 2021-05-03T01:41:52.450 回答