如何在graphql中将null设置为字段?

如何在graphql中将null设置为字段?,graphql,graphql-java,Graphql,Graphql Java,我们在项目中使用graphql,并使用graphql java 2.3.0(我们计划进行更新,但目前还不可能) 我正试图进行这样的变异: mutation { UPDATE_User( id:3, type: null ) {id} } 答复: { "errors": [ { "validationErrorType": "WrongType", "message": "Validation error of

我们在项目中使用graphql,并使用graphql java 2.3.0(我们计划进行更新,但目前还不可能)

我正试图进行这样的变异:

  mutation {
    UPDATE_User(

      id:3,
      type: null
    ) {id}
  }
答复:

{
  "errors": [
    {
      "validationErrorType": "WrongType",
      "message": "Validation error of type WrongType: argument value EnumValue{name='null'} has wrong type",
      "locations": [
        {
          "line": 5,
          "column": 7
        }
      ],
      "errorType": "ValidationError"
    }
  ],
  "data": null
}

Null关键字是GraphQL规范中一个相对较新的添加项,您正在使用的GraphQL java版本尚未实现它。事实上,即使是3.0.0也没有。即将发布的4.0将支持null关键字。

将其视为枚举的原因是,不带引号的字符串通常是枚举,
null
是唯一的例外。这也在中进行了解释。

在您的模式中,是否需要“type”参数


如果不是,那么干脆省略它!在后端,当您检索
type
的值时,它将为空。非常感谢。但建议的解决办法是什么?我不认为graphql用户直到现在都没有使用null。@don_Quijote null是几个月前才添加的。在此之前,您所能做的就是根本不发送
类型
,但这样您就无法区分update为null和保持不变的情况。如果这对您很重要,您必须将一个特殊的标记值设置为
type
,例如
type:“NONE”
,并在后端进行适当处理。