2017-10-03 11 views
1

を見ていない:サングリア私はこのようなクエリを持っている場合GraphQLのクエリ変数に

{ 
    "query": "mutation { createInventory(name: $name, schema: $schema) }", 
    "variables": { 
    "name": "i1", 
    "schema": "s" 
    } 
} 

私は戻ってエラーを取得する:変数「$ name」が定義されていません。

これらの変数がJSONから適切に抽出されていることを確認しました。確かに、私はクエリを実行するときに明示的name変数に渡してみました:

Executor.execute(
    GraphQLSchema.schema, 
    query, 
    ctx, 
    variables = InputUnmarshaller.mapVars(Map("name" -> "foo")) 
) 

はなぜサングリアは、これらの変数を認識することはないでしょうか?私はそれらに名前を付ける方法に何か問題はありますか?

答えて

3

GraphQLクエリ自体の「変数定義」セクションがありません。これは、渡されることを想定変数の型を示し、クエリの一部である

だから、これは動作するはずです、私は変数のための右の種類を推測しました提供:

{ 
    "query": "mutation myMutation($name: String, $schema: String) { createInventory(name: $name, schema: $schema) }", 
    "variables": { 
    "name": "i1", 
    "schema": "s" 
    } 
} 

は続きを読みます私の記事ではThe Anatomy of a GraphQL Queryです。

+1

ありがとうございました!これはほぼ完璧な答えです。問題を修正し、すぐに回答し、さらに深く説明する記事にリンクしました。 – Derecho

関連する問題