GitHub API v4:如何使用分页进行遍历? (GraphQL)

Posted

技术标签:

【中文标题】GitHub API v4:如何使用分页进行遍历? (GraphQL)【英文标题】:GitHub API v4: How can I traverse with pagination? (GraphQL) 【发布时间】:2018-06-15 10:53:11 【问题描述】:

我正在使用 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=="
            ,
    ...

【问题讨论】:

【参考方案1】:

根据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:如何使用分页进行遍历? (GraphQL)的主要内容,如果未能解决你的问题,请参考以下文章

如何从客户端 javascript 查询 GitHub api v4?

如何将 Github API v4 (graphql) 与 javascript XMLHttpRequest 一起使用

通过 Github Graphql v4 API 列出所有用户

如何在 GitHub v4 API 中查询特定标签的目录内容?

获取所有存储库查询 Github v4 API

GitHub V4 GraphQL API with Java 使用一些 GraphQL Java 库(如果可用)