GraphQL 错误中的“位置”指的是啥?
Posted
技术标签:
【中文标题】GraphQL 错误中的“位置”指的是啥?【英文标题】:What does 'locations' refer to in GraphQL errors?GraphQL 错误中的“位置”指的是什么? 【发布时间】:2019-07-28 13:13:41 【问题描述】:我正在学习 GraphQL 节点/Prisma 服务器教程,但由于我的代码有问题而遇到错误。我已经解决了错误,但我想了解错误消息,特别是locations
指的是什么?也就是说,我有一个第 2 行第 3 列的location
,但是第 2 行第 3 列是什么?我的代码中的相关方法(signup
,在这种情况下)?我的突变?
// error message
"data":
"signup": null
,
"errors": [
"message": "secretOrPrivateKey must have a value",
"locations": [
"line": 2,
"column": 3
],
"path": [
"signup"
]
]
【问题讨论】:
【参考方案1】:就像path
一样,locations
指的是您的 GraphQL 文档中发生错误的位置。您可以使用SWAPI GraphQL endpoint 之类的东西自己查看。我们可以通过请求一个不存在的字段来触发验证错误:
allFilmz
产生的错误有这个locations
数组:
[
"line": 2,
"column": 3
]
这是因为违规字段位于第 2 行,从第 3 列开始。如果我们改为发送:
allFilmz
我们得到:
[
"line": 1,
"column": 2
]
通常,错误的path
将比locations
提供更多信息,但当您的文档中存在语法错误时,path
将不存在——在这些情况下,locations
是唯一可以用来追踪语法错误发生位置的方法。
如果使用 GraphQL Playground,请注意 - 与 GraphiQL 不同,Playground 会在发送请求之前去除 cmets 并格式化您的请求,因此 locations
可能与您在 Playground UI 中看到的不匹配。
【讨论】:
以上是关于GraphQL 错误中的“位置”指的是啥?的主要内容,如果未能解决你的问题,请参考以下文章