调用带Query ID的Azure DevOps WIQL API时出现404错误如何解决?
问题解决方法
核心问题:你调用的
https://dev.azure.com/{organization}/{project}/{team}/_apis/wit/wiql/{id}接口并不存在,这是导致404错误的直接原因。WIQL接口的设计中,并没有通过WIQL返回的ID来查询工作项关系的端点。正确获取工作项关系的两种方式:
直接通过WIQL查询关联关系
在POST请求的WIQL语句中,使用WorkItemLinks作为查询源,同时指定关联类型逻辑,就能一次性返回带关系的工作项数据。示例WIQL语句:SELECT [System.Id], [System.Title], [System.Links.LinkType], [System.RelatedLinkId] FROM WorkItemLinks WHERE ([Source].[System.TeamProject] = @project) AND ([System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Forward') ORDER BY [System.Id] MODE (Recursive)这个查询会返回指定项目下所有工作项的层级关联关系。
通过工作项ID单独查询关联关系
如果已经拿到目标工作项ID(比如300),调用工作项详情接口并添加关系扩展参数即可:GET https://dev.azure.com/{organization}/{project}/_apis/wit/workitems/{id}?$expand=relations&api-version=7.1-preview.3返回的结果中会包含该工作项的所有关联关系数据,比如父项、子项、相关项等。
额外注意点:
- 确认请求凭证权限:确保使用的PAT令牌拥有
Work Item Read权限,避免因权限不足引发的异常。 - 选用合适的API版本:推荐使用较新的预览版(如7.1-preview.3),部分旧版本接口可能已被调整或移除。
- 确认请求凭证权限:确保使用的PAT令牌拥有
内容的提问来源于stack exchange,提问作者user22063307
相关产品推荐
相关产品推荐

