设置限制(或无限制)以获取框中的所有组

时间:2014-07-08 12:09:36

标签: powershell box-api box

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

来自Box dev docs

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个小组,紧接着又有3000多个小组。我需要定期更新这些组成员资格(因此我建立了PowerShell模块)。

1 个答案:

答案 0 :(得分:1)

用于分页的Box API模式使用limitoffset查询参数。没有为团体记录,但它值得一试。其他类型的集合的最大限制为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)