Azure DevOps codesearchresults API无法获取超2000条结果,如何解决?
解决Azure DevOps Code Search API分页上限问题
当你遇到$skip参数上限1000的限制时,无法直接通过增大$skip值获取后续结果,需要改用**延续令牌(continuationToken)**进行分页,这是Azure DevOps Search API官方支持的分页方式,具体步骤如下:
- 首次请求:保持
$skip=0、$top=1000发送请求,在返回的响应数据中查找continuationToken字段(通常位于响应体顶层,或@odata.nextLink对应的参数中)。 - 后续请求:移除请求体中的
$skip参数,添加continuationToken字段并填入上一次响应返回的令牌值,保持$top=1000不变后再次发送请求。 - 循环执行:重复上述步骤,直到响应中不再返回
continuationToken,即表示所有匹配的文件已全部获取。
修改后的请求体示例(第二次请求):
{ "searchText": "ext:dll", "$top": 1000, "continuationToken": "从首次响应中获取的令牌字符串", "filters": [ { "name": "ProjectFilters", "values": [ "MYPROJECT" ] }, { "name": "RepositoryFilters", "values": [ "$/MYPROJECT" ] } ], "searchFilters": { "ProjectFilters": [ "MYPROJECT" ], "RepositoryFilters": [ "$/MYPROJECT" ] } }
注意事项:
- 不要同时在请求体中使用
$skip和continuationToken,二者互斥。 - 每次请求的
continuationToken为一次性有效,必须使用上一次响应返回的最新令牌。
内容的提问来源于stack exchange,提问作者Jeff Gedney
相关产品推荐
相关产品推荐

