【问题标题】:Apollo graphql common type conflictApollo graphql 常见类型冲突
【发布时间】:2019-11-07 21:00:46
【问题描述】:

我开始使用模式拼接,虽然类型不冲突,但一切正常。

但我现在正在合并三个架构,并且我在本地架构和另一个远程架构上有 PageInfo 和 Edge。类型 Edge 和 PageInfo 在两者上完全不同,我只需要在本地架构上使用本地 PageInfo 和 Edge 并在远程上使用远程。

已经尝试了所有 3 个模式拼接示例以解决类型冲突,但没有任何帮助。

https://www.advancedgraphql.com/content/schema-stitching/ex1

【问题讨论】:

    标签: graphql apollo-client


    【解决方案1】:

    模式拼接存在(许多不同的)已知问题,您目前遇到了其中一个问题。 Apollo 已弃用模式拼接并最近发布了Federation 来替换它。 事实证明,拼接是一项繁重的工作,如果下面的 API 知道它们正在为单个架构做出贡献,那么拼接就会变得不那么困难。

    如果您将无法控制的 API 拼接在一起,您将需要不同的解决方案。最简单的解决方案可能是使用 GraphQL Binding 之类的东西并在您的架构中复制所需的部分,然后委托给下面的 API。这样做的好处是,当第三方 API 更改时,您的 架构不会在运行时随机更改或中断。还有很多工具允许将类型从外部架构文件导入到架构文件中。

    【讨论】:

      猜你喜欢
      • 2018-04-23
      • 2018-03-28
      • 2020-04-24
      • 2020-03-01
      • 2019-03-15
      • 2019-11-27
      • 2013-08-04
      • 2017-02-07
      相关资源
      最近更新 更多