2015-10-15 48 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 
     } 
     ] 
    } 
    ] 
}