我正在研究一组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模块)。
答案 0 :(得分:1)
用于分页的Box API模式使用limit
和offset
查询参数。没有为团体记录,但它值得一试。其他类型的集合的最大限制为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)