GitHub API v4: 如何分页遍历? (图 QL)
GitHub API v4: How can I traverse with pagination? (GraphQL)
我正在使用 Github API v4 到 运行 搜索查询。
从 API 文档中我可以了解到以下查询为我提供了 pageInfo 但我不知道如何使用它来遍历。
query {
search(first: 100, type:USER, query:"location:usa repos:>0 language:java") {
pageInfo {
startCursor
hasNextPage
endCursor
}
userCount
nodes {
... on User {
bio
company
email
id
isBountyHunter
isCampusExpert
isDeveloperProgramMember
isEmployee
isHireable
isSiteAdmin
isViewer
location
login
name
url
websiteUrl
}
}
}
}
响应是:
{
"data": {
"search": {
"pageInfo": {
"startCursor": "Y3Vyc29yOjE=",
"hasNextPage": true,
"endCursor": "Y3Vyc29yOjEwMA=="
},
...
}
根据graphql documentation,分页模型不止一种。
GitHub正在使用完全连接模型
在此模型中,您可以通过在搜索查询中添加 after:"Y3Vyc29yOjEwMA==" 进行遍历。
query {
search(first: 100, after:"Y3Vyc29yOjEwMA==" type:USER, query:"location:usa repos:>0 language:java") {
pageInfo {
startCursor
hasNextPage
endCursor
}
userCount
nodes {
... on User {
bio
company
email
id
isBountyHunter
isCampusExpert
isDeveloperProgramMember
isEmployee
isHireable
isSiteAdmin
isViewer
location
login
name
url
websiteUrl
}
}
}
}
我正在使用 Github API v4 到 运行 搜索查询。
从 API 文档中我可以了解到以下查询为我提供了 pageInfo 但我不知道如何使用它来遍历。
query {
search(first: 100, type:USER, query:"location:usa repos:>0 language:java") {
pageInfo {
startCursor
hasNextPage
endCursor
}
userCount
nodes {
... on User {
bio
company
email
id
isBountyHunter
isCampusExpert
isDeveloperProgramMember
isEmployee
isHireable
isSiteAdmin
isViewer
location
login
name
url
websiteUrl
}
}
}
}
响应是:
{
"data": {
"search": {
"pageInfo": {
"startCursor": "Y3Vyc29yOjE=",
"hasNextPage": true,
"endCursor": "Y3Vyc29yOjEwMA=="
},
...
}
根据graphql documentation,分页模型不止一种。
GitHub正在使用完全连接模型
在此模型中,您可以通过在搜索查询中添加 after:"Y3Vyc29yOjEwMA==" 进行遍历。
query {
search(first: 100, after:"Y3Vyc29yOjEwMA==" type:USER, query:"location:usa repos:>0 language:java") {
pageInfo {
startCursor
hasNextPage
endCursor
}
userCount
nodes {
... on User {
bio
company
email
id
isBountyHunter
isCampusExpert
isDeveloperProgramMember
isEmployee
isHireable
isSiteAdmin
isViewer
location
login
name
url
websiteUrl
}
}
}
}