2016-09-23 3 views
2

複数のクエリをGitHubのGraphQL APIに対する1回のリクエストにどのようにバッチ処理できますか?GitHub GraphQL APIクエリをバッチする方法は?

たとえば、これらの2つのクエリを1つのリクエストにバッチして1つのレスポンスを受け取る方法はありますか?そして、このテクニックはより多くのクエリ(200など)で動作しますか?

{ 
    repositoryOwner(login:"rails") { 
    repository(name:"rails") { 
     description 
     homepageURL 
    } 
    } 
} 

{ 
    repositoryOwner(login:"github") { 
    repository(name:"graphql-client") { 
     description 
     homepageURL 
    } 
    } 
} 

(GitHubのGraphQL APIはhttps://developer.github.com/early-access/graphql/explorer/での実験をすることができます)

答えて

5

あなたは1つのクエリ内の両方のフィールドへの呼び出しをラップする必要があります。

{ 
    repositoryOwner(login:"rails") { 
    repository(name:"rails") { 
     description 
     homepageURL 
    } 
    } 
    repositoryOwner(login:"github") { 
    repository(name:"graphql-client") { 
     description 
     homepageURL 
    } 
    } 
} 

これはまだのように、しかし失敗します出力に同じ名前の2つのフィールド(repositoryOwner)があるので、別名を付ける必要があります。

{ 
    rails: repositoryOwner(login:"rails") { 
    repository(name:"rails") { 
     description 
     homepageURL 
    } 
    } 
    graphql_client: repositoryOwner(login:"github") { 
    repository(name:"graphql-client") { 
     description 
     homepageURL 
    } 
    } 
} 

this explanationを参照してください。

クエリごとに一意のエイリアスを生成できれば、このテクニックはうまくいくはずです。

関連する問題