使用 Podio API for .Net 获取所有 Podio 项目集合
Fetching all Podio item collection using Podio API for .Net
我正在使用跑道提供的.Net API。默认情况下,它每次请求仅获取 20 个项目。如果我们将过滤器限制设置为 500(这是 podio 的最大值),我可以为所有项目获取 500 组的项目。但在这里我面临如何迭代这些项目集合的问题
0 到 500
501 至 1000
1001等等……
我正在获取跑道中的项目总数
下面是我的代码
int totalItemCount = 1750; //For this example
int totIterations = totalItemCount / 500;
int offsetValue = 0;
for (int i = 0; i < totIterations + 1; i++)
{
filterOption.Limit = 500;
filterOption.Offset = offsetValue;
filterOption.Remember = true;
filteredContent = await _Podio.ItemService.FilterItems(appId, filterOption);
//Some Code here
offsetValue += 500;
}
这在每次迭代时都获取相同的项目。
预计在前 500 个之后,它应该从 501 开始到下一个 500 个项目......
任何人都可以提供帮助,因为 .Net podio 上的文档非常有限 API
请尝试这样的操作:
int limit = 1;
int offset = 500;
var items_1 = client.ItemService.FilterItems(appId, limit, offset);
var items_2 = client.ItemService.FilterItems(appId, limit, offset + 1);
并验证 items_1
和 items_2
实际上是不同的项目。
FilterItems
方法的来源在这里:https://github.com/podio/podio-dotnet/blob/master/Source/Podio%20.NET/Services/ItemService.cs#L280
如果您要获取所有物品,可以这样做:
int limit = 500;
int offset = 0;
bool continueOperation = true;
var allItems = new List<Item>();
do{
PodioCollection<Item> filteredItems = await _podioClient.ItemService.FilterItems(appId, limit, offset);
offset = offset + limit;
allItems.AddRange(filteredItems.Items);
if (filteredItems == null || filteredItems.Filtered <= offset)
{
continueOperation = false;
}
} while (continueOperation);
我正在使用跑道提供的.Net API。默认情况下,它每次请求仅获取 20 个项目。如果我们将过滤器限制设置为 500(这是 podio 的最大值),我可以为所有项目获取 500 组的项目。但在这里我面临如何迭代这些项目集合的问题 0 到 500 501 至 1000 1001等等…… 我正在获取跑道中的项目总数 下面是我的代码
int totalItemCount = 1750; //For this example
int totIterations = totalItemCount / 500;
int offsetValue = 0;
for (int i = 0; i < totIterations + 1; i++)
{
filterOption.Limit = 500;
filterOption.Offset = offsetValue;
filterOption.Remember = true;
filteredContent = await _Podio.ItemService.FilterItems(appId, filterOption);
//Some Code here
offsetValue += 500;
}
这在每次迭代时都获取相同的项目。 预计在前 500 个之后,它应该从 501 开始到下一个 500 个项目...... 任何人都可以提供帮助,因为 .Net podio 上的文档非常有限 API
请尝试这样的操作:
int limit = 1;
int offset = 500;
var items_1 = client.ItemService.FilterItems(appId, limit, offset);
var items_2 = client.ItemService.FilterItems(appId, limit, offset + 1);
并验证 items_1
和 items_2
实际上是不同的项目。
FilterItems
方法的来源在这里:https://github.com/podio/podio-dotnet/blob/master/Source/Podio%20.NET/Services/ItemService.cs#L280
如果您要获取所有物品,可以这样做:
int limit = 500;
int offset = 0;
bool continueOperation = true;
var allItems = new List<Item>();
do{
PodioCollection<Item> filteredItems = await _podioClient.ItemService.FilterItems(appId, limit, offset);
offset = offset + limit;
allItems.AddRange(filteredItems.Items);
if (filteredItems == null || filteredItems.Filtered <= offset)
{
continueOperation = false;
}
} while (continueOperation);