【发布时间】:2014-09-25 04:51:00
【问题描述】:
我发现 TFS 2010 具有以下 Web 服务端点
http://tfsservername:8080/tfs/TeamFoundation/Administration/v3.0/WarehouseControlService.asmx
是否有获取签到、工作项和其他 TFS 项的提要?
【问题讨论】:
标签: tfs
我发现 TFS 2010 具有以下 Web 服务端点
http://tfsservername:8080/tfs/TeamFoundation/Administration/v3.0/WarehouseControlService.asmx
是否有获取签到、工作项和其他 TFS 项的提要?
【问题讨论】:
标签: tfs
更新:是的! Visual Studio Online introduced a new REST API 和 TFS 2013 的本地安装可以访问这个新 API。
在 TFS 2013 之前的 TFS 版本中:
tl;dr:无论如何你都不想吃。
Team Foundation Server 确实公开了客户端用来与其对话的 SOAP Web 服务。但是,这不是公开记录的东西,微软不支持它(这意味着他们可以并且将会更改版本),而且坦率地说,所需的努力不太可能会得到结果。
尽管 Web 服务设计得很好,但一些 Web 服务需要大量的客户端状态。工作项跟踪 Web 服务尤其如此。客户端基本上包含一个完整的“规则引擎”,用于处理和验证对任何字段的更改。基本上,客户端必须能够理解流程模板并在将更新的工作项提交回服务器之前处理所有这些状态更改。服务器将也运行规则并验证客户端是否只进行了合法更改。
规则引擎未公开。您必须对其进行逆向工程。
这也做出了一些基本假设,例如您的 Web 服务堆栈可以成功地正常使用 NTLM2 和 Kerberos(大多数不能,在 .NET Web 服务堆栈之外,尽管有些在某种程度上支持 NTLM 版本 1,这只会给你一种你应该进行身份验证的错觉。)
因此强烈建议您只使用 Microsoft 的 API 之一来访问 TFS,无论是 .NET 还是 Java SDK。
(实际上,我曾在一家第三方公司工作,该公司通过与 Web 服务对话成功地为 TFS 编写了 Java 前端。这对我们来说是一个公平的挑战——尤其是工作项的实现——这就是我们几个人的全职工作。我不推荐它作为一个副项目。)
【讨论】:
就像 Edward 提到的那样,TFS 网络服务不适合公众使用。
另一方面,您可能想尝试一下“Team Foundation Server 的 OData 服务”。
它提供了一个非常棒的类似 REST 的接口 - 因此只需发出 HTTP 请求即可调用,就像您愿意使用 Web 服务一样。
要了解更多信息,请查看此博文:http://blogs.msdn.com/b/briankel/archive/2011/10/26/odata-service-for-team-foundation-server-2010-v1.aspx
【讨论】: