You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在无Query ID的情况下通过API在AzureDevOps中创建查询

解决Azure DevOps REST API创建查询的{query}参数疑问

你看到的文档示例里的{query}参数不是新查询的ID,而是用来指定新查询要存放的父查询/文件夹的路径或ID——API需要明确知道你要把查询创建在哪个目录下,所以这个位置不能留空。

正确的参数填写方式

{query}支持两种取值:

  • 父文件夹的URL编码路径:比如要在个人查询根目录创建,就填My%20Queries(URL编码后的My Queries);如果要放在个人查询下的子文件夹Bug查询集里,就填My%20Queries/Bug%E6%9F%A5%E8%AF%A2%E9%9B%86(对中文和空格做URL编码)。
  • 父文件夹的ID:可以先通过GET请求https://dev.azure.com/{组织名}/{项目名}/_apis/wit/queries/My%20Queries?api-version=7.0获取个人查询根目录的ID,再把ID填入{query}位置。

根目录创建查询的实际请求示例

如果要在个人查询根目录创建你的"All Bugs"查询,正确的请求路径和体如下:

POST https://dev.azure.com/fabrikam/Fabrikam-Fiber-Git/_apis/wit/queries/My%20Queries?api-version=7.0

请求体:

{
  "name": "All Bugs",
  "wiql": "Select [System.Id], [System.Title], [System.State] From WorkItems Where [System.WorkItemType] = 'Bug' order by [Microsoft.VSTS.Common.Priority] asc, [System.CreatedDate] desc"
}

为什么留空会失败

API必须明确查询的存放位置,不填{query}相当于没有指定父容器,服务端无法确定把新查询存在哪里,所以会返回错误。

验证创建结果

创建成功后,你可以通过GET请求https://dev.azure.com/fabrikam/Fabrikam-Fiber-Git/_apis/wit/queries/My%20Queries/All%20Bugs?api-version=7.0获取新查询的详情,其中会包含它的唯一ID。

内容的提问来源于stack exchange,提问作者mr_bean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 09:57:09