【发布时间】:2019-06-06 06:47:45
【问题描述】:
我正在使用 GraphQL 的 Apollo 服务器实现,以及 Apollo 引擎,特别是检查模式差异是否包含任何重大更改的功能。我想更好地理解为什么 TYPE_ADDED_TO_INTERFACE 被认为是一个重大变化,如果有人可以提供一个 graphql 查询的例子会因此而中断?
我正在使用apollo/2.9.0 darwin-x64 node-v10.10.0 通过apollo service:check 命令执行架构检查。
例如,如果我有这个架构:
interface Animal {
id: ID
}
type Dog implements Animal {
id: ID
favoriteToy: String
}
然后将其添加到架构中:
type Cat implements Animal {
id: ID
}
这被认为是一项重大更改。为什么?
我可以看到,如果有人对所有 Animal 对象进行查询,并且在查询中有一个 ... on Dog 片段,他们将开始仅返回带有接口字段的 Cat 对象,直到他们也添加一个... on Cat 片段。这算不算破?
【问题讨论】:
标签: graphql apollo-server