【发布时间】:2019-10-23 21:10:42
【问题描述】:
这是在 ApolloServer 中弃用字段的模式:
type Car {
id: ID!
make: String
model: String
description: String @deprecated(reason: "Field is deprecated!")
}
但是,我如何弃用整个类型 - 例如上面的Car 类型?
【问题讨论】:
标签: graphql apollo-server
这是在 ApolloServer 中弃用字段的模式:
type Car {
id: ID!
make: String
model: String
description: String @deprecated(reason: "Field is deprecated!")
}
但是,我如何弃用整个类型 - 例如上面的Car 类型?
【问题讨论】:
标签: graphql apollo-server
类型不能被弃用。只有字段和枚举值可能被弃用。这显示在@deprecated指令here的定义中:
directive @deprecated(
reason: String = "No longer supported"
) on FIELD_DEFINITION | ENUM_VALUE
并解释了here(强调我的):
为了支持向后兼容性的管理,GraphQL 字段和枚举值 可以指示它们是否被弃用 (
isDeprecated: Boolean) 并说明它被弃用的原因 (deprecationReason: String)。
弃用旨在指示客户端停止请求已弃用的元素。由于客户端不请求特定类型,仅请求特定字段,因此弃用类型并没有真正意义。
【讨论】: