如何使用REST API获取TFS 2013中的所有工作项
我需要使用RESTAPI检索TFS 2015.2中的所有工作项 我已经参考了下面来自微软的链接 下面是我使用的类似url模式如何使用REST API获取TFS 2013中的所有工作项,tfs,tfs-workitem,Tfs,Tfs Workitem,我需要使用RESTAPI检索TFS 2015.2中的所有工作项 我已经参考了下面来自微软的链接 下面是我使用的类似url模式 http://fabrikam:8080/tfs/DefaultCollection/q.aspx?pname=FabrikamFiber&wiql=SELECT [System.ID], [System.Title], [System.State] FROM WorkItems WHERE [System.TeamProject]='FabrikamFiber
http://fabrikam:8080/tfs/DefaultCollection/q.aspx?pname=FabrikamFiber&wiql=SELECT [System.ID], [System.Title], [System.State] FROM WorkItems WHERE [System.TeamProject]='FabrikamFiber' AND [System.WorkItemType]='Bug'
然而,这个url最终只会出错
错误
您正在查找的页面当前不可用
TF400914:指定的团队q.aspx不存在或您无权访问它
请善意地展示一些解决此问题的方法。注意TFS 2015要求您对URL语法的WIQL部分进行编码。您可以使用任何URL编码器工具对URL进行编码 TFS 2015语法
https://{ServerName}/{CollectionName}/{TeamProjectName}/_workitems?_a=query&wiql={Encoded WorkItemQueryLanguage]
例如,下面的超链接列出了fabrikam服务器上托管的FabrikamFiber/Web区域路径下所有bug的ID、标题和状态,以及它的编码url
http://fabrikam:8080/tfs/DefaultCollection/FabrikamFiber/_workitems?_a=query&wiql=SELECT%20%5BSystem.ID%5D%2C%20%5BSystem.Title%5D%2C%20%5BSystem.State%5D%20FROM%20WorkItems%20WHERE%20%5BSystem.TeamProject%5D%3D'FabrikamFiber'%20AND%20%5BSystem.WorkItemType%5D%3D'Bug'%20AND%20%5BSystem.AreaPath%5D%3D'FabrikamFiber%5CWeb'%20%20
根据您的url,如果需要检索TFS 2015.2中的所有工作项,您似乎仍在使用TFS 2013语法。请改用TFS2015语法
如果需要检索TFS2013中的所有工作项。定义超链接的最简单方法是创建与所需内容匹配的查询,然后复制查询的URL。在web portal/team explorer中创建相同的查询,以缩小问题范围,查看是否能够获取所有工作项。并直接复制url以再次检查您的url格式。注意TFS 2015要求您对url语法的WIQL部分进行编码。您可以使用任何URL编码器工具对URL进行编码 TFS 2015语法
https://{ServerName}/{CollectionName}/{TeamProjectName}/_workitems?_a=query&wiql={Encoded WorkItemQueryLanguage]
例如,下面的超链接列出了fabrikam服务器上托管的FabrikamFiber/Web区域路径下所有bug的ID、标题和状态,以及它的编码url
http://fabrikam:8080/tfs/DefaultCollection/FabrikamFiber/_workitems?_a=query&wiql=SELECT%20%5BSystem.ID%5D%2C%20%5BSystem.Title%5D%2C%20%5BSystem.State%5D%20FROM%20WorkItems%20WHERE%20%5BSystem.TeamProject%5D%3D'FabrikamFiber'%20AND%20%5BSystem.WorkItemType%5D%3D'Bug'%20AND%20%5BSystem.AreaPath%5D%3D'FabrikamFiber%5CWeb'%20%20
根据您的url,如果需要检索TFS 2015.2中的所有工作项,您似乎仍在使用TFS 2013语法。请改用TFS2015语法
如果需要检索TFS2013中的所有工作项。定义超链接的最简单方法是创建与所需内容匹配的查询,然后复制查询的URL。在web portal/team explorer中创建相同的查询,以缩小问题范围,查看是否能够获取所有工作项。并直接复制url以仔细检查url格式。您需要检索TFS 2015.2中的所有工作项,即使您在标题和标记中使用了TFS2013。您实际使用的是哪个TFS版本?嗨,Patrick,是2015.2。很抱歉出现混淆,非常感谢您提供了出色的解决方案您需要检索TFS 2015.2中的所有工作项,即使您在标题和标记中使用了TFS2013。您实际使用的是哪个TFS版本?嗨,Patrick,是2015.2。很抱歉造成混淆,非常感谢您提供了出色的解决方案非常感谢Patrick,我需要在REST API中获取所有“Bug”类型的工作项(使用查询),但没有任何示例可以在不定义ID的情况下获取工作项(我指的是)。有可能完成这项任务吗?如果可以,我可以举个例子吗?@Lalindu有可能,您只需要在请求正文中使用
[System.WorkItemType]=“Bug”
。更多详细信息请看这个类似的问题:非常感谢Patrick,我需要在RESTAPI中获取所有“Bug”类型的工作项(使用查询),但是没有任何示例可以在不定义ID的情况下获取工作项(im引用)。有可能完成这项任务吗?如果可以,我可以举个例子吗?@Lalindu有可能,您只需要在请求正文中使用[System.WorkItemType]=“Bug”
。更多详细信息请查看此类似问题: