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 作为聚合器服务?的主要内容,如果未能解决你的问题,请参考以下文章
Newrelic:GraphQL 查询解析器作为单独的 Web 事务