2016-09-23 7 views
2

Как можно задать несколько запросов в один запрос на API GraphQL GitHub?Как обрабатывать запросы GitHub GraphQL API?

Например, как вы можете выполнить эти 2 запроса в один запрос и получить один ответ? И будет ли эта техника работать со многими другими запросами (скажем, 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

Вам нужно обернуть вызовы обоих полей в одном запросе:

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

Это будет по-прежнему не хотя, как теперь есть два поля на выходе с таким же именем (repositoryOwner), поэтому вам нужно их псевдоним:

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

См. this explanation.

Если вы можете создать уникальный псевдоним для каждого из ваших запросов, тогда да, эта техника должна работать нормально.

Смежные вопросы