我正在尝试通过 API 从 TFS 2015 服务器抓取变更集。我使用 $top
和 $skip
参数按照文档进行分页。然而,一些奇怪的行为正在发生:
- 请求 255 个项目会返回全部 255 个项目。请求 256 个及以上项目只会返回 132 个项目。
- 第二个页面的响应中不包含链接 HTTP header - 防止自动抓取。
- 在浏览器中手动递增
$skip
参数会返回零个项目。
是否可以通过 API 对项目进行分页,或者 TFS 是否设置限制来阻止这种情况?
最佳答案
API 只能返回 256 个变更集。因此,要获得所有这些,您需要:
1)获取前 256 个变更集(我使用 orderby 以防响应顺序不同):
_apis/tfvc/changesets?$top=256&orderby=id desc&searchCriteria.itemPath=<your_path>&api-version=1.0
2) 如果响应中有超过 0 个项目,则从响应中获取 ChangesetNumber 的最后一个值。如果为 0 - 您获得了所有变更集。
3) 获取从changesetNumber开始的接下来的256个项目:
_apis/tfvc/changesets?searchCriteria.toId=<changesetNumber>&$top=256&orderby=id desc&searchCriteria.itemPath=<your_path>&api-version=1.0
您需要跳过第一个变更集(您已经具有此值)作为响应。
4) 转到步骤 2
关于tfs - 如何通过 TFS 2015 REST API 对变更集进行分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38661694/