在使用 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 中的实体。