如何使用vso-node-api(VSTS)创建共享查询文件夹?

时间:2018-01-08 20:42:13

标签: javascript node.js azure-devops azure-devops-rest-api

在VSTS Rest API中,有一份文档向我展示如何create a folder。具体来说,我想在Shared Queries文件夹中创建一个文件夹。我似乎可以使用REST API执行此操作。

我想用VSTS Node API(vso-node-api)做同样的事情。我似乎能找到的最接近的类似函数是WorkItemTrackingApi.createQuery。这是正确使用的功能吗?

当我尝试使用此功能时,我收到错误:

Failed request: (405)

这看起来很奇怪,因为"方法不允许"错误似乎不是正确的错误。换句话说,我不是决定使用什么方法(GET/POST/...etc)的人,我只是调用应该使用正确的HTTP请求方法的VSTS Node API函数

我认为如果我的请求有问题(例如提供错误的参数/数据),错误代码会/应该是不同的。

但是,如果VSTS不喜欢我在请求中提供的数据,我也不会感到惊讶。我写了以下测试函数:

async function createQueryFolder (QueryHeirarchyItem, projectId, query) {
  let result = await (WorkItemTrackingApi.createQuery(QueryHeirarchyItem, projectId, query))
  return result
}

我设置了一些变量并调用了函数:

let projectID = properties.project // A previously set project ID that works in other API calls
let QueryHeirarchyItem = {
    isFolder: true,
    name: 'Test Shared Query Folder 1'
}
try {
    let result = await createQueryFolder(QueryHeirarchyFunction, projectID, '')

请注意,我为查询提供了一个空白字符串 - 当我想要创建的所有内容都是文件夹时,我不知道该提供什么。

所以,我认为我的方法在很多方面都可能出错,但是如果我的请求参数错误,也许我应该得到400错误? 405让我相信VSTS Node API正在进行基础VSTS REST API无法理解的REST调用。

1 个答案:

答案 0 :(得分:1)

对于createQueryFolder的第三个参数,您应指定要在其中创建新文件夹的文件夹路径

例如,如果要在共享查询下创建文件夹Test Shared Query Folder 1,则应将createQueryFolder的参数指定为:

let result = await createQueryFolder(QueryHeirarchyFunction, projectID, 'Shared Queries')