我有一个问题,在下列每种情况下,如何看待GraphQL查询/变异的响应:
>结果,没有错误
>出了问题,一个或多个错误
>有结果和一些错误
我不确定后者是否可能,但我似乎记得在某个地方读到它可能会发生.例如.在多个突变的情况下,假设两个,其中每个突变被顺序处理.我认为如果第一个突变很好,可能会发生上面的情况#3,但是在执行第二个突变期间会发生错误,但我不确定.
无论如何,回应应该如何?像下面那些? (JSON中的示例,其中每个都与之前的案例相对应.)或者还有其他方式更惯用吗?也许Relay提供了一些关于它应该如何的指导方针?我找不到任何好的资源.
1:
{
"data": {
...
}
}
2:
{
"errors": [
{
...
},
...
]
}
3:
{
"data": {
...
},
"errors": [
{
...
},
...
]
}
谢谢.
最佳答案 是的,您的样本回复看起来正确.这是“案例3”的更详细示例.
其中一个字段中包含错误的示例查询
query MyQuery {
viewer {
articles(first: 1) {
edges {
node {
title
tags # we'll introduce an error in the schema here
}
}
}
}
}
样品回复
{
"data": {
"viewer": {
"articles": {
"edges": [
{
"node": {
"title": "Sample article title",
"tags": null
}
}
]
}
}
},
"errors": [
{
"message": "Cannot read property 'bar' of undefined",
"locations": [
{
"line": 7,
"column": 11
}
]
}
]
}