【发布时间】:2019-10-31 23:17:43
【问题描述】:
我有一个问题我不知道如何正确解决。
我正在开发一个项目,我们使用 graphql 服务器与不同的 api 进行通信。这些 api 很旧而且很难更新,所以我们决定使用 graphql 来简化我们的沟通。
目前,两个 api 允许我获取用户数据。我知道这不连贯,但遗憾的是我无法对此进行任何更改,我需要将它们中的两个用于不同的操作。所以为了简单起见,我想从我的前端应用程序中抽象出来,所以它只要求用户数据,总是采用相同的格式,无论这些数据来自哪个 api。
只有一个 api,graphql 的解析器系统帮助很大。但是当我从第二个 api 访问用户数据时,我发现总是将同一个对象发送回我的首页非常困难。这两个 api,即使它们具有大部分相同的数据,也具有不同的响应格式。所以在我的解析器中,根据数据的来源,我应该做一件事或另一件事。
例子:
API A
type User {
id: string,
communication: Communication
}
type Communication {
mail: string,
}
API B
type User {
id: string,
mail: string,
}
我听说过一些关于 apollo-federation 的信息,但我不能在我们系统的每个 api 前面放置一个 graphql 服务器,所以我有点迷茫我如何在数据时为我的前端应用程序实现透明度来自两个不同的来源。
如果有人已经遇到同样的问题或对我能做的事情有建议,我都会听到:)
【问题讨论】:
标签: graphql apollo-client