从TFS 2015迁移至Azure DevOps:如何用REST API按自定义字段筛选工作项?
使用Azure DevOps REST API按自定义字段筛选工作项
Azure DevOps完全支持通过自定义字段筛选工作项,核心是用**WIQL(Work Item Query Language)**构建查询,再调用对应API执行即可。
核心操作步骤
- 编写WIQL查询语句,指定自定义字段的筛选条件
- 调用
Query By WiqlAPI执行查询,获取匹配的工作项ID - 可选:调用
Get Work ItemsAPI获取完整的工作项详情
示例实现
1. WIQL查询语句示例
针对你要筛选otherId等于5的场景,WIQL语句如下:
SELECT [System.Id], [System.Title], [System.State], [Custom.otherId] FROM WorkItems WHERE [Custom.otherId] = 5
注意:自定义字段需用
[Custom.字段名]格式引用,若字段有特定命名空间,可使用完整引用名(比如[MyProcess.otherId]),具体可在Azure DevOps工作项设置中查看字段的引用名称。
2. API调用示例(HTTP请求)
请求URL
POST https://dev.azure.com/{组织名}/{项目名}/_apis/wit/wiql?api-version=7.1-preview.2
请求头
Content-Type: application/jsonAuthorization: Basic {Base64编码的PAT令牌}PAT令牌需具备工作项查询权限,可在Azure DevOps个人设置中生成。
请求体
{ "query": "SELECT [System.Id], [System.Title], [System.State], [Custom.otherId] FROM WorkItems WHERE [Custom.otherId] = 5" }
3. 获取完整工作项详情
如果需要获取匹配工作项的完整信息,可调用以下API,传入返回的工作项ID集合:
GET https://dev.azure.com/{组织名}/{项目名}/_apis/wit/workitems?ids={ID1},{ID2}&api-version=7.1-preview.3
注意事项
- 务必确保自定义字段的引用名称准确,错误名称会导致查询无结果或报错
- 若自定义字段为多值类型(如下拉框),需调整筛选语法(比如使用
IN操作符) - 建议使用最新的API版本,避免兼容性问题
内容的提问来源于stack exchange,提问作者Kiss Gábor
相关产品推荐
相关产品推荐

