VSTS/TFS 扩展开发 - URL getWorkItems() 方法的 GET 请求限制

VSTS/TFS Extension Development - URL Limit for GET Request for getWorkItems() Method

我们正在开发 VSTS/TFS 扩展。我们还使用 VSTS/TFS 提供的 Rest Client 查询工作项数据。我们使用以下方法获取所有工作项的详细信息 - https://docs.microsoft.com/en-us/azure/devops/extend/reference/client/api/tfs/workitemtracking/restclient/workitemtrackinghttpclient2_1?view=vsts#method_getWorkItems

getWorkItems 方法生成 GET 请求。所有工作项 ID 都作为查询参数传递,超过了 URL 2048 个字符的限制。因此,为了解决这个问题,目前,我们将工作项 ID 拼接成更小的块。但随后它增加了 Rest API 调用。

是否有任何其他方法可以使用 VSTS/TFS 定义列表中的任何方法获取所有工作项的详细信息?

使用 queryById()queryByWiql() 中的函数 TFS/WorkItemTracking/RestClient 通过查询检索工作项。

例如:

 witClient.queryById('7633dab2-89e4-4da9-b03d-a16728ab71c5', projectId)
                    .then(function (workitemResult) {....})



query = {
                        query: "SELECT [System.Id] "
                             + "FROM WorkItem WHERE [System.WorkItemType] = 'Feature' "
                             + "AND [System.State] NOT IN ('Closed','Completed','Removed','Done') "
                             + "AND [System.TeamProject] = @project"
                    };
witClient.queryByWiql(query, projectId, allteams[0].id).then(function (result) {


                        console.log(result);

                    });

这是answer

let client = VssService.getCollectionClient(WitClient.WorkItemTrackingHttpClient5);
client.getWorkItemsBatch(<WitContracts.WorkItemBatchGetRequest>{ ids: [1, 2, 3] })