使用带有WIQL的VSTS返回工作项详细信息

时间:2018-04-18 14:50:57

标签: tfs azure-devops

我有以下功能,我希望返回有关工作项的信息,例如完成工作。但是,作为工作项列表,我得到的只是ID和URL。

我想过在SELECT语句中指定我想要的字段会提供答案,但似乎没有区别?

 function newGetWorkItems(queryType, iterationPath, projectId, listOfQueries)
   {
   var queryClient = VSS_Service.getCollectionClient(TFS_Wit_QueryAPI.WorkItemTrackingHttpClient);

   var query = "";

  if (queryType == 0) 

  {
    query = { query: "SELECT [System.Id],[System.CreatedBy] FROM WorkItems WHERE [System.IterationPath] = '" + iterationPath + "'" };

  }

可以看出我曾经想过会为每个工作项返回CreatedBy,但事实并非如此,只是因为我假设我正在传递的迭代...?

{"queryType":1,"queryResultType":1,"asOf":"2018-04-18T14:44:12.463Z",
"columns":[{"referenceName":"System.TeamProject","name":"Team Project","url":"http://xx:8080/tfs/DefaultCollection/_apis/wit/fields"}],
"workItems":[{"id":34639,"url":"http://xx:8080/tfs/DefaultCollection/_apis/wit/workItems/34639"},

2 个答案:

答案 0 :(得分:0)

为什么不直接使用TFS的其余API?

我建议您通过wiql直接为TFS API查询 网址:https://<TFS URL>/tfs/<Collection>/<TeamProject>/_apis/wit/wiql

您可以在https://docs.microsoft.com/en-us/rest/api/vsts/wit/wiql/query%20by%20wiql

找到更多信息

另一种方法是,您可以创建自己的查询,然后请求由rest API执行:https://docs.microsoft.com/en-us/rest/api/vsts/wit/queries/get#query_by_name

另一种方法是,考虑到您的请求的答案,您可以迭代每个结果"url":"http://xx:8080/tfs/DefaultCollection/_apis/wit/workItems/34639"并获得答案。

希望它有所帮助, 谢谢

答案 1 :(得分:0)

您无法通过WIQL REST API获取工作项的详细信息,您需要通过Work Items – List REST API获取工作项详细信息。 (Javascript SDK的 getWorkItems 功能)

例如(根据您的代码):

 queryClient.getWorkItems([722,716]).then(function (wits) {
                    console.log(wits);
                });