GraphQL 作为聚合器服务?

Posted

技术标签:

【中文标题】GraphQL 作为聚合器服务?【英文标题】:GraphQL as aggregator service? 【发布时间】:2020-03-10 05:27:23 【问题描述】:

在 google 上的大多数资源中,我看到 graphql 的主要优势之一据说是它能够作为聚合器服务,但我没有找到任何具体示例它与其他 http 端点(或 Rest)有何不同端点)?

我的理解是,在 GraphQL 的情况下,所有东西都会有一个 http 端点。然后graphql服务器将确定哪个特定 将调用数据获取器。这是以非常可配置的方式提供的。

但在其他基于 MVC 的架构或基于 rest 的架构的情况下,每个请求的端点都是分开的,然后流程开始。

所以在某种程度上,graphql 为每个请求提供了单个入口点(或者我们可以说地址),然后 graphql 负责进一步的分支,但在上面的其他 提到的架构有用于资源/请求的单独地址(或端点)。是因为这个原因我们说graphql可以作为聚合器服务还是别的什么?

【问题讨论】:

【参考方案1】:

GraphQL 的主要优势是让客户端能够查询所需的所有内容(对象)并将其显示给用户,而无需为应用程序中的每个请求/响应讨论/创建规范。并且在某些情况下,客户端对同一请求需要不同的响应(例如,Web 和移动客户端的视图可能看起来不同)。

我相信您可以根据域的上下文在您的应用程序中创建多个 GraphQL 端点,但在大多数情况下这可能会产生误导。

【讨论】:

我的问题主要是从聚合的角度来看,即它如何作为聚合服务提供帮助? 我有点困惑。您的问题是关于聚合器设计模式的优势吗?因为后端的 graphql 就像聚合器一样工作,我相信没有其他选择可以实现它。

以上是关于GraphQL 作为聚合器服务?的主要内容,如果未能解决你的问题,请参考以下文章

GraphQl 计数聚合条目

Newrelic:GraphQL 查询解析器作为单独的 Web 事务

Graphql 查询在 mongodb 聚合中返回空 id

有没有办法为两个或多个 GraphQL 服务生成聚合的 schema.json?

从 json api 响应生成 Graphql 模式

有没有办法使用 graphql 订阅将数据与聚合一起获取?