使用 Apollo Graphql,将字段设置为 null 而不发送它是否相同?

With Apollo Graphql, is it the same having a field as null and not sending it?

提问人:Cyrielle Albert 提问时间:11/3/2023 更新时间:11/3/2023 访问量:31

问:

我正在实现一个 React Typescript 应用程序,该应用程序使用 GraphQL(前端上的 Apollo)与 Kotlin 后端进行通信。

我的突变是:

updateProfile(input: UpdateProfileInput)

input UpdateProfileInput {
  firstName: String
  lastName: String
  email: String
}

我应该只发送已更改的字段作为输入。因此,如果它与我们数据库中的当前内容相同,我不应该发送电子邮件。

我的问题是,在前端,如果我将值设置为 null,它会起作用吗,或者它仍然会在后端检测到该字段已发送?

例如,如果我发送 and(因为字段可以为 null):input1input2

const input1 = {
   firstName: null,
   lastName: null, 
   email: "[email protected]" //<- updated email
}

const input2 = {
   email: "[email protected]"
}
reactjs kotlin graphql apollo-server

评论


答:

0赞 000dry 11/3/2023 #1

在 Graphql 突变中,不发送字段与将字段显式设置为 null 不同。

应避免为不希望更新的字段发送任何值。在您的例子中,发送 null 将覆盖已存在的电子邮件的值。