首页 > 解决方案 > DevOps API 搜索查询语法

问题描述

我们需要按姓名和作者搜索“查询”。按照指南,我们提出了这个尝试:

https://dev.azure.com/{{organization}}/{{project}}/_apis/wit/queries?api-version=5.1&$filter=createdBy=Fernando

但它返回

{
   "value": [],
   "hasMore": false
}

其他不成功的尝试是:

$filter="createdBy"="Fernando"
$filter={createdBy=Fernando}
$filter=createdBy:Fernando

标签: apiazure-devops

解决方案


缺乏关于如何定义过滤器的详细文档。我也没有使用过滤器查询参数。我最终使用 powershell 脚本来过滤Query List API 返回的响应结果。查询列表 api 将返回查询文件夹。您可以指定$depth参数以获取子查询。

下面的脚本将获取由 createdBy 过滤的查询。

$query ="https://dev.azure.com/<organization>/<project>/_apis/wit/queries?`$depth=2&api-version=5.1"

$connectionToken="PAT"


$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($connectionToken)"))

$result7 = Invoke-RestMethod -Uri $query -Headers @{authorization = "Basic $base64AuthInfo"} -Method get

$queryfolder = $result7.value[0]

$child = $queryfolder.children | Where-Object {$_.createdBy.displayName  -Like "<name>"}

希望以上对您有所帮助!


推荐阅读