11

I was wondering what the significance of the string that follows the query type, in this case "ProvisionQueues", it seems removing this from the string doesn't affect anything - is it just for logging or something. meta data?

mutation ProvisionQueues {
 createQueue(name: "new-queue") {
    url
  }
}
4

2 に答える 2

15

その文字列が操作名です。名前を指定しない場合、その操作は匿名操作と呼ばれます。ただし、実用的な場合は、常に操作名を指定するのが好きです。これにより、スタック トレースの読み取りなどを簡単に行うことができるからです。

これを文字列から削除しても何の影響もないようです

匿名操作は、単一の操作を実行する場合にのみ使用できます。たとえば、次の場合はエラーになります。

query {
  user(id: 1) {
    name
  }
}

query {
  user(id: 2) {
    name
  }
}

エラー:

"message": "This anonymous operation must be the only defined operation."

詳細については、GraphQL 仕様を参照してください。

ドキュメントに含まれる操作が 1 つだけの場合、その操作は名前が付けられていないか、クエリ キーワードと操作名の両方が省略された省略形で表されている可能性があります。それ以外の場合、GraphQL クエリ ドキュメントに複数の操作が含まれている場合は、各操作に名前を付ける必要があります。

于 2016-03-13T17:35:43.127 に答える
0

別の例で@Ericの回答に追加します。

query allNotifications {
  notifications {
    success
    errors
    notifications {
      id
      title
      description
      attachment
      createdAt
    }
  }
}    ​
​
query {
  users {
    errors
    success
    users {
      id
      fullName
    }
  }
}

上記の users クエリにはoperation nameがないことに注意してください。これは、以下のように解決できます。</p>

query allUsers {
  users {
    errors
    success
    users {
      id
      fullName
      mohalla
    }
  }
}
于 2021-07-05T05:08:08.150 に答える