如何批量处理GitHub GraphQL API查询?

4
如何将多个查询批处理到单个请求中以访问GitHub的GraphQL API?
例如,您如何将这两个查询批处理到单个请求中并接收单个响应?并且这种技术是否适用于更多的查询(比如200个)?
{
  repositoryOwner(login:"rails") {
    repository(name:"rails") {
      description
      homepageURL
    }
  }
}

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

(The GitHub GraphQL API可以在https://developer.github.com/early-access/graphql/explorer/上进行实验)
1个回答

13

你需要将对两个字段的调用包装在一个查询中:

{
  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
     }
   }
 }

请查看这个解释

如果您为每个查询生成唯一别名,则此技术应该可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接