如何为@GraphQLArgument的枚举类型设置默认值?
如何为@GraphQLArgument的枚举类型设置默认值?
你的枚举定义如下:
public enum CursorDirection { @GraphQLEnumValue(name = "FORWARD") FORWARD, @GraphQLEnumValue(name = "BACKWARD") BACKWARD; }
直接将枚举名称设为defaultValue时出现Jackson解析错误,核心原因是框架会把defaultValue的值当作JSON解析,未加引号的FORWARD不是合法的JSON格式。
正确设置方式
把枚举值用双引号包裹,作为合法的JSON字符串传入:
@GraphQLArgument(name = "cursorDirection", description = CURSOR_DIRECTION_DESC, defaultValue = "\"FORWARD\"") CursorDirection cursorDirection
原因说明
框架在处理@GraphQLArgument的defaultValue参数时,会通过Jackson将其解析为JSON。原始代码中的"FORWARD"会被解析成未加引号的JSON token,不符合JSON语法规范;而包裹双引号后,"\"FORWARD\""是合法的JSON字符串,能被正确转换为对应的CursorDirection.FORWARD枚举值。
内容的提问来源于stack exchange,提问作者Amit Jolly
相关产品推荐
相关产品推荐

