如何修改Azure DevOps GET API URL以获取含新增项的所有工作项?
解决Azure DevOps工作项API获取所有工作项的问题
问题原因
你原来调用的/workitems端点必须指定ids参数,直接去掉该参数会触发404错误——因为这个接口仅用于根据ID批量查询特定工作项,不支持直接获取全部工作项。而最初固定ID的请求方式,自然无法包含后续新增的工作项。
正确解决方案:使用WiQL查询API
要获取项目下所有工作项,需要调用Azure DevOps的WiQL(Work Item Query Language)查询接口,具体步骤如下:
请求端点:
https://dev.azure.com/{OrgName}/{ProjectName}/_apis/wit/wiql?api-version=7.0请求方法为
POST,而非原请求的GET。构造请求体:
提交JSON格式的WiQL查询语句,示例如下(可根据需求调整返回字段):{ "query": "SELECT [System.Id], [System.Title], [System.State], [System.AssignedTo] FROM WorkItems" }该查询会返回项目下所有工作项的指定字段信息。
获取完整工作项详情(可选):
如果需要工作项的完整字段数据,可以从WiQL返回结果的workItemRelations中提取所有工作项ID,再调用你原来的/workitems端点,用逗号分隔所有ID批量查询:https://dev.azure.com/{OrgName}/{ProjectName}/_apis/wit/workitems?ids=1,2,3,4,5,...&api-version=7.0
额外注意事项
- 确保调用API的身份凭证(如PAT令牌)拥有项目的工作项读取权限。
- WiQL查询支持添加筛选条件,若不需要全部工作项,可在
query中加入WHERE子句缩小范围,例如:SELECT [System.Id], [System.Title] FROM WorkItems WHERE [System.WorkItemType] = 'Task'
内容的提问来源于stack exchange,提问作者user22866575
相关产品推荐
相关产品推荐

