2015-10-15 39 views
2

我有一个问题concering一个GraphQL查询/突变的反应应该是什么样子就像在每个以下情况:响应突变

  1. 有一个结果,没有任何错误
  2. 出事了,一个或多个错误
  3. 有两种结果和一些错误

我不知道后者甚至有可能,但我似乎记得读书的地方,它可能发生。例如。在多重突变的情况下,让我们说两个,每个突变按顺序处理。我认为如果第一个突变是好的,可能会发生上面的情况#3,但是在执行第二个时发生错误,但我不确定。

无论如何,应该如何回应?像下面的那些? (JSON中的例子,每个例子都与之前的例子相对应)或者还有其他更惯用的方法吗?也许接力提供了一些指导方针,看看它应该是什么样子?我找不到任何好的资源。

1:

{ 
    "data": { 
    ... 
    } 
} 

2:

{ 
    "errors": [ 
    { 
     ... 
    }, 
    ... 
    ] 
} 

3:

{ 
    "data": { 
    ... 
    }, 
    "errors": [ 
    { 
     ... 
    }, 
    ... 
    ] 
} 

感谢。

回答

1

是的,您的示例回复对我来说很合适。以下是“案例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 
     } 
     ] 
    } 
    ] 
}