【问题标题】:Deprecate a type in ApolloServer弃用 ApolloServer 中的类型
【发布时间】: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


    【解决方案1】:

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

    directive @deprecated(
      reason: String = "No longer supported"
    ) on FIELD_DEFINITION | ENUM_VALUE
    

    并解释了here(强调我的):

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

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

    【讨论】:

    • 顺便说一句,我可以在片段使用的上下文中看到类型弃用,但不管它不是当前规范的一部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-25
    • 2013-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-01
    • 1970-01-01
    相关资源
    最近更新 更多