0

我正在研究一组 PowerShell 函数,这些函数将用于管理我们的企业 Box 实现。现在我正在处理组部分,并且可以通过 2.0 API 成功返回组。但是,对组 API 的调用似乎具有 100 的默认限制 - 限制了返回的组数。

来自Box 开发文档

curl https://api.box.com/2.0/groups -H "Authorization: Bearer ACCESS_TOKEN"

返回

{
    "total_count": 1,
    "entries": [
        {
            "type": "group",
            "id": "1786931",
            "name": "friends"
        }
    ],
    "limit": 100,
    "offset": 0
}

我需要一举搞定所有组,或者至少有办法批量处理所有组。有没有办法将限制设置为无限制(我假设为 0)或至少更高?

在某些情况下,我们的第一次推送组将是大约 235 个组,紧随其后的是另外 3,000 多个组。我需要定期更新这些组成员身份(因此我正在构建 PowerShell 模块)。

4

1 回答 1

1

用于分页使用limitoffset查询参数的 Box API 模式。它没有记录在群组中,但值得一试。对于其他类型的集合,最大限制为 1000;我会在这里尝试一下,看看效果如何。

curl https://api.box.com/2.0/groups?limit=1000&offset=0 
-H "Authorization: Bearer ACCESS_TOKEN"

API 不支持其他地方的“无限”查询,所以我认为这里也是如此。

更新total_count字段在分页中很有用。下面是一些伪代码,可以在尽可能少的 API 调用中聚合组:

offset = 0
groups = []

do 
{
  // fetch a chunk of groups
  results = curl https://api.box.com/2.0/groups?limit=1000&offset=<offset>

  // add this chunk to your collection
  groups.add(results.entries)

  // increment the offset by the length of the chunk
  offset = offset + results.entries.length

// repeat until the number of groups you've received equals the number expected.
} while (groups.length < results.total_count)  
于 2014-07-08T13:34:51.143 回答