12

GraphiQL インターフェイスで GraphQL を使用して単純な突然変異を実行しようとしています。私の突然変異は次のようになります:

mutation M($name: String) {
  addGroup(name:$name) {
    id,
    name
  }
}

変数を使用:

{
  "name": "ben"
}

しかし、それは私にエラーを与えます:Variable $name of type "String" used in position expecting type "String!"

突然変異をに変更するmutation M($name: String = "default")と、期待どおりに機能します。これは型システムに関連しているように見えますが、何が問題なのかわかりません。

4

2 に答える 2

12

入力名を null 以外の文字列として定義した可能性があります ( type: new GraphQLNonNull(GraphQLString)js サーバーを使用している場合やString!、プレーンな GraphQL の場合など)。

したがって、ミューテーションの入力は一致する必要があります。つまり、null 以外の文字列でもある必要があります。次のように変更すると、動作するはずです。

mutation M($name: String!) {
  addGroup(name:$name) {
    id,
    name
  }
}

また、デフォルト値を定義すると、null 以外の文字列になります。

最後に、サーバーで非 null であるという要件を削除できます。

于 2016-07-29T13:44:18.450 に答える
0

あなたaddGroup()のミューテーションでは、 name の引数は型String!であると思いますが、あなたのミューテーションでは、型システムと競合new GraphQLNonNull(GraphQLString)するものとして指定します。String

于 2015-09-24T07:55:02.710 に答える