弃用 ApolloServer 中的类型

Fel*_*ger 3 graphql apollo-server

这是在 ApolloServer 中弃用字段的模式:

type Car {
  id: ID!
  make: String
  model: String
  description: String @deprecated(reason: "Field is deprecated!")
}
Run Code Online (Sandbox Code Playgroud)

但是,如何弃用整个类型 - 例如Car上面的类型?

Dan*_*den 8

类型不能被弃用。仅字段和枚举值可以被弃用。@deprecated这在指令的定义中显示

directive @deprecated(
  reason: String = "No longer supported"
) on FIELD_DEFINITION | ENUM_VALUE
Run Code Online (Sandbox Code Playgroud)

并在这里解释(强调我的):

为了支持向后兼容性的管理,GraphQL字段和枚举值可以指示它们是否已弃用 ( isDeprecated: Boolean) 以及弃用原因的描述 ( deprecationReason: String)。

弃用旨在指示客户端停止请求已弃用的元素。由于客户端不请求特定类型,仅请求特定字段,因此弃用类型实际上没有意义。