【问题标题】:GraphQL non-nullable field nested in nullable field嵌套在可空字段中的 GraphQL 不可空字段
【发布时间】:2020-01-09 19:56:50
【问题描述】:

我有一个返回一组通知的 GraphQL 查询。 “创建者”字段不会出现在每个通知中,这是一个问题,因为它属于“用户”类型,并且用户有一个不可为空的“id”字段。是否可以将不可空字段嵌套在可空字段中?

{
  myNotifications {
    id
    title
    message
    image
    creator {
      id
      full_name
    }
  }
}

【问题讨论】:

    标签: graphql nullable apollo-server


    【解决方案1】:

    非空字段只有在解析后才会被验证。如果父字段解析为 null,则不会解析任何子字段,因此验证永远不会发生。换句话说,有一个父字段可以为空的非空字段是完全可以的。

    【讨论】:

    • 谢谢丹尼尔。我不确定我是否完全清楚(或者我仍然误解)。我希望“用户”类型(上面的“创建者”)具有不可为空的“id”。但是,“通知”类型(上面的“myNotifications”查询返回一个数组)可能并不总是有创建者,但在这些情况下,我的解析器为“id”返回 null,这会引发错误。您是说我需要确保通知的解析器为“创建者”返回 null 而不是它的任何子字段?
    • 正确,如果creator 不存在,我希望它为空——它不应该返回一个所有属性都解析为空的对象。
    • @ZacharyRussellHeineman 这是我的类似问题:stackoverflow.com/questions/67752629/…
    猜你喜欢
    • 2019-07-08
    • 2019-04-11
    • 2023-02-18
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多