如何在graphql中将null设置为字段?
我们在项目中使用graphql,并使用graphql java 2.3.0(我们计划进行更新,但目前还不可能) 我正试图进行这样的变异:如何在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
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”
,并在后端进行适当处理。