如何批处理 GitHub GraphQL API 查询?
Posted
技术标签:
【中文标题】如何批处理 GitHub GraphQL API 查询?【英文标题】:How to batch GitHub GraphQL API queries? 【发布时间】:2017-02-01 16:16:42 【问题描述】:如何将多个查询批处理成对 GitHub 的 GraphQL API 的单个请求?
例如,您如何将这 2 个查询批处理为一个请求并接收一个响应?这种技术是否适用于更多查询(比如 200 个)?
repositoryOwner(login:"rails")
repository(name:"rails")
description
homepageURL
repositoryOwner(login:"github")
repository(name:"graphql-client")
description
homepageURL
(可以在https://developer.github.com/early-access/graphql/explorer/ 试用 GitHub GraphQL API)
【问题讨论】:
【参考方案1】:您需要将两个字段的调用包装在一个查询中:
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。
如果您可以为每个查询生成一个唯一的别名,那么是的,这种技术应该可以正常工作。
【讨论】:
以上是关于如何批处理 GitHub GraphQL API 查询?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Github API v4 (graphql) 与 javascript XMLHttpRequest 一起使用
GitHub API v4:如何使用分页进行遍历? (GraphQL)
如何使用 Github GraphQL Api 创建问题和标签?
如何使用 HttpUrlConnect 使用 java 查询 Github graphql API