1

在使用 Apollo federation 对分布式服务进行本地开发时,我遇到了障碍。问题是当服务 1定义类型 A 并且服务 2扩展类型 A 时。仅运行服务 2(不是网关)时,任何返回类型 A 的操作都不起作用,因为它没有在服务 1 中定义;服务 2 在网关上下文之外运行时不知道服务 1。

我在服务 2 中有类型 A 的存根,但在查询类型中没有它可用,因为由于服务 1 中已经存在类型,它会在失败时引发模式验证错误。

这方面的信息似乎很少,但也许我只是没有把这些点联系起来。你用什么模式来处理这个问题?

编辑 示例代码

服务 1 - 类型

`
type A @key(fields: "id"){
  id: Int!
  name: string
}

query {
  a(id: Int!): A!
}
`

服务 2 - 类型

`
extend type A @key(fields: "id"){
  id: Int! @external
  favoriteNumber: Int!
}
`

针对联合网关的查询:

query {
  a(id: 1) {
    name
    favoriteNumber
  }
}

我试图弄清楚如何单独查询服务 2 中的实体。

4

0 回答 0