4

次の各ケースで、GraphQL クエリ/ミューテーションの応答がどのように見えるかについて質問があります。

  1. 結果があり、エラーはありません
  2. エラーが発生しました。1 つ以上のエラーが発生しました
  3. 結果といくつかのエラーの両方があります

後者が可能かどうかはわかりませんが、それが起こる可能性があることをどこかで読んだことを覚えているようです。たとえば、複数のミューテーションの場合、たとえば 2 つとしましょう。各ミューテーションは順番に処理されます。上記のケース #3 は、最初のミューテーションが問題なく、2 番目のミューテーションの実行中にエラーが発生した場合に発生する可能性があると思いますが、よくわかりません。

とにかく、応答はどのように見えるべきですか?以下のような?(それぞれが以前のケースに対応する JSON の例。) または、より慣用的な他の方法はありますか? おそらくリレーは、どのように見えるべきかについてのガイドラインを提供しますか? これに適したリソースが見つかりませんでした。

1:

{
  "data": {
    ...
  }
}

2:

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

3:

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

ありがとう。

4

1 に答える 1

2

はい、サンプルの回答は私には正しいように見えます。「ケース 3」のより詳細な例を次に示します。

フィールドの 1 つにエラーがあるサンプル クエリ

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
        }
      ]
    }
  ]
}
于 2015-10-25T23:10:33.793 に答える