使用REST API获取TFS工作项及其链接

Yur*_*riW 3 rest tfs tfs-sdk azure-devops azure-devops-rest-api

我正在使用TFS REST API并尝试按标题检索工作项及其子项(父项的标题是参数).我找不到使用TFS REST API检索这些链接项的方法.

这就是我尝试过的.首先,我按标题查询工作项:

URI = http://[tfspath]/_apis/wit/wiql?api-version=1.0
query = SELECT * FROM WorkItem WHERE [System.Title] = 'some title'
Run Code Online (Sandbox Code Playgroud)

上面的内容返回一个对象WorkItems,它只包含匹配工作项的ID/URL.然后,我在下面的查询中使用返回的ID(假设id为1234):

URI = http://[tfspath]/_apis/wit/workitems/1234?fields=System.Title&api-version=1.0
Run Code Online (Sandbox Code Playgroud)

这将返回项目的标题以及我可能包含在字段列表中的其他字段.但是,我找不到在退货中包含子项的方法.我尝试过包含System.RelatedLinks,但这不会更改返回的字段.例:

URI = http://[tfspath]/_apis/wit/workitems/1234?fields=System.Title,System.RelatedLinkCount,System.RelatedLinks&api-version=1.0
Run Code Online (Sandbox Code Playgroud)

返回

"fields":{"System.RelatedLinkCount":4,"System.Title":"some title"}
Run Code Online (Sandbox Code Playgroud)

这意味着有4个相关链接指向工作项"某个标题",但它们没有被退回.我在这里错过了什么?我如何获得这些相关链接/子项目?

jes*_*ing 6

附加&$expand=relations到查询字符串以获取工作项的链接集合:

$expand enum { all, relations, none }   none    
Gets work item relationships (work item links, hyperlinks, file attachements, etc.).
Run Code Online (Sandbox Code Playgroud)

要获取包含所有详细信息的工作项以及包含详细信息的链接,您需要使用用于报告目的的API.由于返回文档可能的剪切大小,它将被分块并且您将获得水印.您可能需要执行多个请求.