私はGraphQLについて学んでおり、query
またはmutation
(ルートクエリタイプに応じて)の後に続くクエリのoperation name
部分に非常に興味があります。操作名を使用したコード例をいくつか見つけましたが、それらがどこから来たのか混乱していますか?それらについてのコードには参照がないようであり、それらは完全に恣意的であるように見えます。
query Welcome {
echo (email: "[email protected]")
}
そして
query HeroNameQuery {
hero {
name
}
}
特定のスキーマに後続のクエリとタイプ(例:user
、article
、order
など)を含めることができない理由がわかりません。名前空間システムを理解しておらず、操作名には何らかの利点があります。
クエリ/ミューテーション名はオプションです。バックエンドでサポートされている場合は、保存されたクエリのバックエンドで使用できます。ただし、通常はロギングに使用されます。クエリ/ミューテーションごとに一意の名前を使用できます。次に、問題が発生したときに、クエリ名のログをgrepして、その特定のクエリで何が起こっているかを確認できます。
それは素晴らしい質問です。オペレーション名は、あなたがそれを何と呼びたいかについてはほとんどあなた次第です。ただし、次のようにクエリ/ミューテーションパラメータを渡す場合は必要です。
// GraphQL Query
query Welcome ($data: String!) {
echo (email: $data) {
name
}
}
// GraphQL Variables
{
"data": "[email protected]"
}
GraphQLの哲学はすべてが強く型付けされており、クライアントがサブフィールドに必要なデータを正確に指示することであるため、戻りフィールドについては、特定の型付き選択のサブフィールドを書き出す必要があります。
お役に立てれば!