我有以下功能,我希望返回有关工作项的信息,例如完成工作。但是,作为工作项列表,我得到的只是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"},
答案 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);
});