GitHub API v4:如何遍历分页?(GraphQL)

Fur*_*vuz 7 rest github github-api graphql github-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
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

响应是:

{
    "data": {
        "search": {
            "pageInfo": {
                "startCursor": "Y3Vyc29yOjE=",
                "hasNextPage": true,
                "endCursor": "Y3Vyc29yOjEwMA=="
            },
    ...
}
Run Code Online (Sandbox Code Playgroud)

Fur*_*vuz 5

根据graphql文档,存在多个分页模型。

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
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)