如何使用DevOps API获取Story(用户故事)下关联的所有Task(任务)
解决Azure DevOps API查询用户故事关联任务的方法
方案1:基于现有接口扩展查询
你可以直接在当前调用的接口后追加$expand=Relations参数,就能拿到该工作项的所有关联关系数据,示例接口格式如下:https://{你的组织地址}/{项目名}/_apis/wit/workitems/{StoryID}?$expand=Relations&api-version=5.1
返回结果的relations字段中,所有rel属性为System.LinkTypes.Hierarchy-Forward的条目就是该Story下的子工作项,你只需要再过滤其中对应工作项类型为Task的条目即可。
方案2:使用WIQL查询一步获取关联Task
如果不想手动过滤关联关系,可直接调用WIQL(工作项查询语言)接口,一次性查询指定Story下的所有Task,不需要先查Story再做过滤,执行效率更高,操作步骤如下:
- 第一步调用WIQL查询接口,提交查询条件,接口地址为:
https://{你的组织地址}/{项目名}/_apis/wit/wiql?api-version=5.1
请求方法为POST,请求头指定Content-Type: application/json,请求体示例:
{ "query": "SELECT [System.Id], [System.Title], [System.State] FROM WorkItems WHERE [System.WorkItemType] = 'Task' AND [System.Parent] = {你的StoryID}" }
- 第二步从返回结果的
workItems字段中即可直接拿到该Story下所有Task的ID和基础信息,如果需要获取Task的完整字段,可调用批量工作项查询接口https://{你的组织地址}/{项目名}/_apis/wit/workitems?ids={TaskID1,TaskID2...}&api-version=5.1一次性拉取所有数据,减少接口调用次数。
注意:调用接口前请确保你的认证账号拥有对应工作项的读取权限,否则会返回403权限不足错误
内容的提问来源于stack exchange,提问作者Fabian H.
相关产品推荐
相关产品推荐

