通过 GraphQL API 显示超过 100 个条目

2023-11-21

我已经厌倦了使用 github grpahQL API 中的 endCursor 和 hasNextPage 进行分页来获取超过 100 个数据。我使用的查询是:

query {
      organization(login:"XXX") {
                   repository(name:"XX") {
                   pullRequests(first:100, states:[OPEN], after: "XXX" ) {
        pageInfo{
          hasNextPage
          endCursor
        }
      }
    }

这是工作。但为了访问更多详细信息,需要进行迭代分页。谁能提供一种有效的替代方案来在 GraphQL API 中以编程方式遍历所有页面?


从西蒙·威利森的《使用 Python 对 GitHub GraphQL API 进行分页' 这是我一直在对查询进行分页的方法:

query {
  node(id: "PROJECT_ID") {
    ... on ProjectNext {
      items(first: 100 after: CURSOR) {
        pageInfo {
          hasNextPage
          endCursor
        }
        nodes {
          title
          fieldValues(first: 8) {
            nodes {
              value
            }
          }
          content {
            ... on Issue {
              number
              labels(first: 50) {
                nodes {
                  name
}}}}}}}}}

在我的Python代码中我正在拼接PROJECT_ID将变量设置为我引用的项目 ID。

对于光标after: CURSOR被替换为""最初,然后是我设置的下一页cursor = 'after:\\"' + response["data"]["node"]["items"]["pageInfo"]["endCursor"] + '\\"'

我的完整代码位于转储memex我的 dump_cards 实用程序的模块。

这里的关键是要得到pageInfo以及其他相关节点,然后抓取endCursor每一次hasNextPage为 true,以便可以将其输入到下一次迭代的查询中。

pageInfo 看起来像这样:

"pageInfo": {
  "hasNextPage": false,
  "endCursor": "Y3Vyc29yOnYyOpHOAAhOsg=="
}

此刻endCursor是base64编码的cursor:v2:XYZ,但不要依赖于此,因为 GitHub 已将其他 ID 从 Base64 编码转移到其他方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 GraphQL API 显示超过 100 个条目 的相关文章

随机推荐

  • 如何在 C/C++ 中处理 unicode 字符序列?

    在 C 和 C 中处理 unicode 字符序列的更便携和简洁的方法是什么 此外 如何 读取unicode字符串 将 unicode 字符串转换为 ASCII 以节省一些字节 如果用户仅输入 ASCII 打印unicode字符串 我也应该使
  • 如何同时从列表中删除多个索引? [复制]

    这个问题在这里已经有答案了 假设我这里有这个列表 list a b c d e f g 我如何删除说索引2 3 4 and 5同时 pop 不接受多个值 我还能怎么做呢 您需要在循环中执行此操作 没有内置操作可以一次删除多个索引 您的示例实
  • 如何在android中实现onMenuItemClickListener

    我如何实施onMenuItemClickListener Override public boolean onCreateOptionsMenu Menu menu super onCreateOptionsMenu menu getMen
  • 如何创建重复的日历事件?

    我正在使用 asp mvc 3 jquery full calendar ms sql server 2008 和 c 我想知道是否有人知道如何制作重复事件 我不确定如何制作它们 例如 在谷歌日历中 您可以每年重复一次约会 我怀疑他们在数据
  • C# 3.0:自动属性 ​​- 编译器创建的私有变量的名称是什么

    我在检查 NET 3 5的新特性 发现在C 3 0中 我们可以使用 public class Person public string FirstName get set public string LastName get set 代替
  • jQuery select2 控件 - 检索最后选择的元素

    我正在使用 jQuery select2 控件 我需要实现以下功能 如果用户尝试添加某个元素 基于某种算法 我应该从选择中删除另一个 不兼容的 元素 我看到有两种方法可以实现这一目标 1 禁止对所选值进行自动排序 2 获取最后选择的项目的值
  • 导轨回溯消音器不起作用,而过滤器起作用

    新的 Rails 4 2 设置 我想抑制长错误回溯 在下面的回溯日志中 第一行对我来说就足够了 接下来的 4 行可以删除 ActionController RoutingError No route matches GET user act
  • 参数“***”未绑定在指定的 LINQ to Entities 查询表达式中

    我在我的项目中做了一个常见的查询 我使用Expression来构建我的查询树 代码列表如下 public IList
  • 使用 ostream 打印到任何地方[重复]

    这个问题在这里已经有答案了 我想将数据发送到任何地方 我的意思是我不想在控制台或文件中打印数据 但我需要一些std ostream目的 怎么做 我用过 std ostream bitBucket 0 最近没有出现问题 尽管如果您从某个角度看
  • 如何在站点 B 上使用 nginx proxy_pass 提供内容时覆盖站点 A 的内容安全策略?

    当我在站点 B 上使用 nginx proxy pass 时 有没有办法覆盖域 站点 A 设置的内容安全策略 Site A defined Content Security Policy on their domain Site B act
  • 如何拍摄 Android 模拟器状态的快照?

    当我从以下位置启动 Android 模拟器时Android SDK 和 AVD 管理器我可以勾选这些框从快照启动 and 保存到快照以便在关闭模拟器时保存模拟器的状态 并在启动模拟器时再次恢复状态 这很棒 因为我不必在每次启动模拟器时都等待
  • $lookup 数组中的 ObjectId

    在 ObjectId 数组而不仅仅是单个 ObjectId 字段上执行 lookup 的语法是什么 订单文档示例 id ObjectId products ObjectId
  • 为什么 Visual Studio Code 中文件资源管理器中的子文件夹会折叠成一行?

    我对 VS Code 比较陌生 我想我一定是不小心更改了设置 VS Code 过去常常清晰地显示下面的所有子文件夹 并从其父文件夹向右缩进 但有些事情发生了变化 现在我的子文件夹显示有点像文件资源管理器中的面包屑 请参见下面发布的图片 我尝
  • 将包含日数据的 JFreeChart TimeSeries 系列转换为周或月数据?

    我意识到这可能是一个愚蠢的问题 并且我知道可以通过确定每个数据点所在的周或月等来完成 但是 我正在寻找一种避免编码的方法 如果它是在图书馆中完成的 大概所有的陷阱都得到了 我宁愿使用它 原始数据存储在Excel电子表格中 但我无法直接操作电
  • 输出原始图像流而不是 jpeg,动态调整图像大小

    我有一个 PHP 函数 可以动态调整图像大小以创建缩略图 我遇到了麻烦 因为它只是显示原始图像流而不是实际图像 我的代码使用一个名为缩略图的函数 thumbnail thumbnail item filename 209 137 image
  • PHP date('W') 与 MySQL YEARWEEK(now())

    有人可以解释一下为什么这两个给出不同的结果吗 我用 PHP 执行这个 date YW mktime 0 0 0 3 22 2013 outputs 201312 当我使用 MySQL 执行此操作时 SELECT YEARWEEK now o
  • HTMLUnit:执行速度超慢?

    我一直在使用 HTMLUnit 它非常适合我的要求 但似乎速度极其缓慢 例如 我使用 HTMLUnit 自动化了以下场景 Goto Google page Enter some text Click on the search button
  • Postgresql:带有转义换行符的 CSV 导出

    我使用此处发布的 所有 指令从 postgresql 数据库导出了一些数据 将 PostgreSQL 的 PL pgSQL 输出保存到 CSV 文件 但某些导出的字段包含换行符 换行符 因此我得到了一个 CSV 文件 如下所示 header
  • 调试的最佳实践

    最近 我使用 Visual Studio 和 WinDbg 对托管应用程序进行了大量调试 因此我经常被要求协助同事进行调试 有好几次我发现人们只是到处插入断点并希望得到最好的结果 根据我的经验 这很少是一种有用的技术 我的方法是这样的 重现
  • 通过 GraphQL API 显示超过 100 个条目

    我已经厌倦了使用 github grpahQL API 中的 endCursor 和 hasNextPage 进行分页来获取超过 100 个数据 我使用的查询是 query organization login XXX repository