apolloのerrorとerrorsは両方値が入っていることはありますか?
https://www.apollographql.com/docs/ios/fetching-queries/
引用:
apollo.fetch(query: HeroNameQuery(episode: .empire)) { (result, error) in
print(result?.data?.hero?.name) // Luke Skywalker
}
The error parameter to the completion handler signals network or response format errors (such as invalid JSON).
In addition to an optional data property, result contains an optional errors array with GraphQL errors (for more on this, see the sections on error handling and the response format in the GraphQL specification).
上記引用にある通り、公式ドキュメントに
詳しくは別の error handlingセクション
とresponse formatセクション
を見よと書いてますが、どちらもリンクをクリックした先が、添付画像のようになっており、説明がありません。
添付画像
質問
そこで質問ですが、
resultと同じレベルにいるerror
と
resultの中に含まれているerrors
とが
同時にエラーの情報を持つことはあるのでしょうか?
なんとなく、エラーが起こった場合、片方にしかエラー情報は入っていない気がするのですが、仕様的にどうなのでしょうか?
(まあそもそも公式ドキュメントに載ってなさそうなのですが... 他の言語のapolloクライアントでは決まっていたりとかするのでしょうか?)
なんとなくというのは
The error parameter to the completion handler signals network or response format errors (such as invalid JSON).
翻訳: errorパラメータは、ネットワークまたはレスポンスフォーマットのエラー(不正なJSONなど)を通知する
result contains an optional errors array with GraphQL errors
翻訳: result は オプショナルのGraphQLのエラーの配列を持っている
とあるので、
- ネットワークまたはレスポンスフォーマットのエラー
- GraphQLのエラー
の2つは同時に成り立たないんじゃないかと推測しているためです。