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] })
我们正在开发 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] })