【发布时间】:2018-01-18 08:01:29
【问题描述】:
我正在尝试从 TFS rest api 获取所有错误报告(不仅是我的所有其他错误报告)。我通过 GET 操作获取数据,但它只显示分配给我。所以,现在我正在使用带有查询的帖子操作。出于身份验证目的,我使用的是 ntlm 插件。以下是我的代码
var ntlm = require('ntlm')
, ntlmrequest = require('request').defaults({
agentClass: require('agentkeepalive').HttpsAgent
});
var url = "https://{instance}/tfs/DefaultCollection/{project}/_apis/wit/wiql?$expand=clauses&api-version=1.0"
, domain = 'myDomain'
, username = 'userName'
, password = 'pwd'
, hostname ='host';
var query = "Select [State], [Title] From WorkItems Where [System.WorkItemType] = 'Bug' AND [System.State] <> 'Closed' AND [System.State] <> 'Removed' Order By [State] Asc";
ntlmrequest(url, {
headers: {
'Authorization': ntlm.challengeHeader(hostname, domain)
}
}, function(err, ntlmres) {
var options = {
method: 'post',
body: {query:query},
json: true,
url: url,
headers: {
'Authorization': ntlm.responseHeader(ntlmres, url, domain, username, password),
'Content-Type': 'application/json'
}
}
ntlmrequest(options, function (err, ntlmres, body) {
if(err)
res.json({result:'failed',message:err.message});
res.json({result: "success", data: ntlmres.body.workItems});
});
});
以上代码返回如下结果
{
"result": "success",
"data": [
{
"id": 8254,
"url": "https://{instance}/tfs/DefaultCollection/_apis/wit/workItems/8254"
},
{
"id": 8375,
"url": "https://{instance}/tfs/DefaultCollection/_apis/wit/workItems/8375"
} ]
}
我的要求是获取/扩展结果中可用的 url 数据,而不是 url。是否可以从单个查询中获取所有这些数据。
【问题讨论】: