GraphQL 拼接 VS 合并模式

GraphQL stitching VS merging schemas

合并和拼接 GraphQL 模式之间的实际区别是什么? graphql-tools 文档(合并:https://www.graphql-tools.com/docs/schema-merging, stitching:https://www.graphql-tools.com/docs/schema-stitching/stitch-combining-schemas)在涉及每个实现的用例时有点模棱两可。如果我理解正确的话,拼接只是组织偏好的问题,每个子方案都会成为您方案的 'proxy',而合并功能看起来与我非常相似。你能解释一下区别吗?谢谢!

当您想在同一个查询中从多个 GraphQL API 检索数据时使用模式拼接(这基本上是 GraphQL 背后的动机)。 例如,您可能必须从两个 GraphQL API 中提取数据——一个为您提供有关位置的信息,另一个 GraphQL API 提供有关天气的信息。要执行同时访问两个端点的查询,您必须拼接两个端点的模式,这将允许您执行这样的查询(在两个端点之间呈现 link端点):

{
  event(id: "5983706debf3140039d1e8b4") {
    title
    description
    url
    location {
      city
      country
      weather {
        summary
        temperature
      }
    }
  }
}

另一方面,架构合并是指收集所有基于域拆分的架构,主要用于组织目的。架构合并不会保留各个子架构。