HotChocolate 12中ErrorBuilder.SetPath含括号时报类型名无效错误
解决方案
HotChocolate 12对错误路径的格式要求更严格,不再允许将字段名和数组索引合并成单个字符串(比如"Users[0]"),而是需要把路径的每个组成部分单独传入:
- 将字段名和索引拆分为列表中的独立元素
- 或者使用
Path类的API来构建合法的路径
方法1:拆分路径元素
修改SetPath的参数,把"Users[0]"拆成两个独立元素传入列表:
IErrorBuilder errorBuilder = new ErrorBuilder() .SetPath(new List<string>() { "Users", "0" });
方法2:使用Path构建器API(更推荐)
借助HotChocolate提供的Path静态方法构建路径,更贴合v12的设计规范:
var path = Path.New("Users").AtIndex(0); IErrorBuilder errorBuilder = new ErrorBuilder() .SetPath(path);
原因说明
HotChocolate 10对路径处理较为宽松,允许直接传入带索引的复合字符串。但v12重构了路径验证逻辑,要求每个路径段必须是合法的GraphQL名称(不能包含[、]这类特殊字符),数组索引需要作为单独的路径段存在,才能被正确解析为标准的GraphQL路径格式。
内容的提问来源于stack exchange,提问作者Jacob Shaffer
相关产品推荐
相关产品推荐

