2017-07-28 67 views
0

我们在我们的项目中使用graphql并使用graphql-java 2.3.0(我们计划更新,但目前不可能)。如何在graphql中设置null为空?

我试图进行这样的突变:

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 
} 

回答

1

空关键字是一个相对较新的GraphQL规范,而你是graphql的Java版本使用尚未实施。事实上,即使3.0.0仍然没有它。即将发布的4.0将支持null关键字。
它被视为枚举的原因是因为未加引号的字符串通常是枚举,null是唯一的例外。这也在this issue中解释过。

+0

我明白了。谢谢。但是什么是reccomended解决方法?我认为直到现在,graphql用户还没有使用null。 –

+0

@Don_Quijote Null仅在几个月前添加。在此之前,你所能做的就是根本不发送'type',但是你不能区分_update和null_并且_leave不变_。如果这对你很重要,你必须设置一个特殊的标记值来“输入”,例如'type:“NONE”'并在后端处理相应的内容。 – kaqqao

0

在您的模式中,'type'参数是否必需?

如果不是那么简单地忽略它!在你的后端,当你将检索的价值type那么它将为空

相关问题