如何批处理 GitHub GraphQL API 查询?
How to batch GitHub GraphQL API queries?
如何将多个查询批处理到对 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/ 进行实验)
您需要在一个查询中包装对两个字段的调用:
{
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
}
}
}
如果您可以为每个查询生成一个唯一的别名,那么是的,这种技术应该可以正常工作。
如何将多个查询批处理到对 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/ 进行实验)
您需要在一个查询中包装对两个字段的调用:
{
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
}
}
}
如果您可以为每个查询生成一个唯一的别名,那么是的,这种技术应该可以正常工作。