3

GraphQL-Mesh 和 Apollo-Federation 有什么区别?

我看到网格支持联邦,这有点混乱?

实现统一模式只是两种不同的方式吗?

为什么你会选择一种解决方案而不是另一种?

4

2 回答 2

2

GraphQL-Mesh:连接到您的数据库:检测数据库模式并将其转换为 GraphQL 服务器。这是一种“零代码”解决方案。您拥有数据库和 bam!:您可以将其作为 graphql 服务器进行查询。

Apollo:更难用一句话概括它既是前端又是后端。它不是零代码解决方案:它是一个全栈框架,可帮助您编写为正确的 GraphQL 通信提供服务的代码

  • 在前端,它可以帮助您在 javascript 代码中编写 graphql 查询,(与 React.js 很好地集成,但也可以用于其他前端库)它还缓存(这样前端就不会再次询问服务器,如果数据在他的缓存中)
  • 在后端:您可以声明一个 graphql 模式并为您的解析器编写代码(解析器是在您的后端接收到 graphql 查询时调用的函数:它们必须返回预期的数据)。Apollo 负责侦听查询,解析它们并为查询的每个子部分调用适当的解析器。
于 2020-12-31T08:25:24.453 回答
2

GraphQL Mesh 是一组工具,用于为一组数据源构建网关或 sdk。它们可以是各种类型:文档化的 REST API,通过 Postgraphile 的 postgres 数据库,当然还有 GraphQL 服务器等等。

然后,网格允许您执行转换以更改最终模式。

Apollo Federation 是一个库,旨在建立单独的 GraphQL Schema 之间的关系,也称为子图。也是 GraphQL Mesh 提出的变换策略之一。

从某种意义上说,GraphQL Mesh 更类似于 Apollo Gateway,但具有更多自定义模式的功能以及用作 sdk 的能力。

于 2021-08-04T15:25:57.937 回答