初探Team Foundation Server (TFS) 2015 REST API
REST是一种简洁方便的Web服务,通过基于http协议的远程通信,可以为多种客户端程序提供远程服务,大幅提高了服务器系统的可扩展性。
微软宣布从Team Foundation Server 从2015版本开始提供REST API远程访问,其实早在2014年Team Foudation Service(VSO)就发布了REST API的接口程序。TFS通过TEST,为多种客户端和应用程序,多种设备提供了一种轻量级方式,使其可以快速与TFS服务器实现数据互访。开发人员可以在Windows, Andriod, iOS等设备上运行的客户端程序访问TFS,实现代码签入,项目规划和跟踪等几乎所有TFS客户端可以完成的工作。
在REST API推出之前,开发人员只能通过.NET API或者Java API实现TFS的扩展。现在通过REST API,客户可以在任意平台和终端中实现扩展,特别是在手机移动端等设备。不同的开发人员可以使用自己熟悉的开发工具和开发语言,调用REST API,实现不同系统与TFS的集成。
这里我以最常见的JavaScript为例子,结合Jquery,通过最常见的工作项操作示例,来说明如何使用TFS的REST API接口。
在开始之前,你可以通过这个链接https://www.visualstudio.com/en-us/integrate/api/overview 获取TFS所有API的描述。
1. 创建一个工作项
需要注意下面的示例程序中使用了Jquery读取HTML控件中配置的信息,例如TFS的地址、团队项目名称、账户和密码等。
function NewWit() {
var tfsurl = $("#TFSCollection").val() + $("#ProjectName").val() + "/_apis/wit/workitems/$" + $("#WorkItemType").val() + "?api-version=1.0";
//url的完整示例:https://{account}.visualstudio.com/defaultcollection/{project}/_apis/wit/workitems/${workitemtypename}?api-version={version}
$(TFSUrl).val(tfsurl);
var paraData = $("#ApiParas").val();//示例:[{"op":"add","path":"/fields/System.Title","value":"工作项标题"},{"op":"add","path":"/fields/System.AssignedTo","value":"tfsadmin"}]
$(ApiParas).val(paraData);
$.ajax({
url: tfsurl,
type: "PATCH",
contentType: "application/json-patch+json",
data: paraData,
success: function (data) {
$("#ApiResult").val(JSON.stringify(data));
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#ApiResult").val("ERROR:\n" + errorThrown);
},
username: $("#TFSUserName").val(),
password: $("#TFSPassword").val()
});
}
2. 修改工作项
function UpdateWit() {
var tfsurl = $("#TFSCollection").val() + "_apis/wit/workitems/" + $("#WitId").val() + "?api-version=1.0";
$(TFSUrl).val(tfsurl);
var paraData = $("#ApiParas").val(); //示例:[{"op":"add","path":"/fields/System.Title","value":"工作项标题"},{"op":"add","path":"/fields/System.AssignedTo","value":"tfsadmin"}]
$(ApiParas).val(paraData);
$.ajax({
url: tfsurl,
type: "PATCH",
contentType: "application/json-patch+json",
data: paraData,
success: function (data) {
$("#ApiResult").val(JSON.stringify(data));
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#ApiResult").val("ERROR:\n" + errorThrown);
},
username: $("#TFSUserName").val(),
password: $("#TFSPassword").val()
});
}
3. 添加工作项链接
function UpdateWit() {
var tfsurl = $("#TFSCollection").val() + "_apis/wit/workitems/" + $("#WitId").val() + "?api-version=1.0";
$(TFSUrl).val(tfsurl);
var paraData = $("#ApiParas").val(); //示例:[{"op":"add","path":"/relations/-","value":{"rel":"System.LinkTypes.Dependency-forward","url":"http://tfs2015cn:8080/tfs/AbchinaCollection/_apis/wit/workitems/17"}}]
$(ApiParas).val(paraData);
$.ajax({
url: tfsurl,
type: "PATCH",
contentType: "application/json-patch+json",
data: paraData,
success: function (data) {
$("#ApiResult").val(JSON.stringify(data));
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#ApiResult").val("ERROR:\n" + errorThrown);
},
beforeSend: function (xhr) {
$("#ApiResult").val("loading...");
},
username: $("#TFSUserName").val(),
password: $("#TFSPassword").val()
});
}
4. 修改迭代路径
function UpdateWit() {
var tfsurl = $("#TFSCollection").val() + "_apis/wit/workitems/" + $("#WitId").val() + "?api-version=1.0";
$(TFSUrl).val(tfsurl);
var paraData = $("#ApiParas").val(); //示例:[{"op":"add","path":"/fields/System.Title","value":"工作项标题 user 2"},{"op":"add","path":"/fields/System.IterationPath","value":"CMMI\\迭代 0"}]
$(ApiParas).val(paraData);
$.ajax({
url: tfsurl,
type: "PATCH",
contentType: "application/json-patch+json",
data: paraData,
success: function (data) {
$("#ApiResult").val(JSON.stringify(data));
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#ApiResult").val("ERROR:\n" + errorThrown);
},
username: $("#TFSUserName").val(),
password: $("#TFSPassword").val()
});
}
http://www.cnblogs.com/danzhang/ ALM MVP 张洪君
补充资源:
http://www.dotnetcurry.com/visualstudio/1162/using-rest-api-tfs-visual-studio-online
初探Team Foundation Server (TFS) 2015 REST API的更多相关文章
- In-Place upgrade to Team Foundation Server (TFS) 2015 from TFS 2013Team Foundation Server TFS TFS 2015 TFS upgrade TFS with Sharepoint
This upgrade document gives detailed step by step procedure for the In-Place upgrade from TFS 2013 t ...
- Team Foundation Server (TFS) 2015 安装指导
1. 概述 微软于8月6日发布了大家期待已久的TFS 2015正式版, https://www.visualstudio.com/en-us/news/tfs2015-vs.aspx ,新版本包含的大 ...
- PLSQL(PL/SQL)集成Team Foundation Server (TFS),实现数据库代码的版本管理
PL/SQL是面向Oralcle数据库的集成开发环境,是众多Oracle数据库开发人员的主要工具.由于PL/SQL(百度百科)不仅是一种SQL语言,更是一种过程编程语言,在项目实施过程中,会积累大量除 ...
- Visual Studio 6 (VC6)连接Team Foundation Server (TFS 2018),实现源代码的版本管理
1. 概述 Visual Studio 6(VB6, VC6, Foxpro-)是微软公司在1998年推出的一款基于Windows平台的软件开发工具,也是微软推出.NET开发框架之前的最后一个IDE工 ...
- 在域信任环境中使用 Team Foundation Server (TFS 2013)
原文:在域信任环境中使用 Team Foundation Server (TFS 2013) 1. 用户情景和方案: XX公司的大部分软件产品通过软件外包的方式由开发商完成.为加强对软件开发的进度和质 ...
- Team Foundation Server (TFS)与Project Server集成,使用DNS(友好地址)地址注册PWA
问题描述: 当Team Foundation Server(TFS 2010/2012/2013)与Project Server高可用性的环境集成时,必然会使用Project Server (PWA) ...
- 在Sublime中集成Team Foundation Server (TFS),实现版本管理
Sublime是一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,由于它开发的技术架构.丰富的插件,和轻盈而快速的编程响应,Sublime广受程序员的爱好.在C, C++, Javascri ...
- 让Team Foundation Server/TFS自动记住用户名密码解决方案
在使用Team Foundation Server(以下简称TFS) 的时候,在每次打开Visual Studio TFS时候,需要输入用户名和秘密,比较麻烦.现提供一种方法可以解决这个问题: 依次执 ...
- 自定义Team Foundation Server (TFS) 与Project Professional的集成字段
用户可以象使用Office Excel一样,使用Project Professional连接TFS,将数据下载到本地修改,并且发布到TFS服务器上,如果你习惯使用Project来计划你的项目,那么Pr ...
随机推荐
- wget进行整站下载
wget加上参数之后,即可成为相当强大的下载工具. wget -r -p -np -k http://xxx.com/abc/ -r, --recursive(递归) specif ...
- double 类型转化为Integer类型 ---DecimalFormat
假设x是你要转换的double类型变量: 不进行四舍五入操作: (int)x 进行四舍五入操作: Integer.parseInt(new java.text.DecimalFormat(" ...
- 缓存技术比拼:Redis与Memcached的同与不同
转至:http://developer.51cto.com/art/201603/507980.htm 在今天的文章中,我们将探讨Redis(REmote DIctionary Server).Red ...
- HTML JavaScript简介
一.JavaScript简介 1.JavaScript是个什么东西? 它是个脚本语言,需要有宿主文件,它的宿主文件是HTML文件. 2.它与Java什么关系? 没有什么直接的联系,Java是Sun公司 ...
- Sass学习之路(2)——Sass环境安装(windows版)
因为本喵目前用的是window10的本子,所以这里就发windows版本的安装流程啦.(希望有朋友可以赞助我一个mac(┳_┳)): 第一步:安装ruby 因为Sass是基于ruby编写的,所以先去官 ...
- ubuntu下安装程序的三种方法
引言 在ubuntu当中,安装应用程序我所知道的有三种方法,分别是apt-get,dpkg安装deb和make install安装源码包三种.下面针对每一种方法各举例来说明. apt-get方法 使用 ...
- centOS 安装 svnserve
安装说明 系统环境:CentOS-6.3安装方式:yum install (源码安装容易产生版本兼容的问题)安装软件:系统自动下载SVN软件 检查已安装版本 ? 1 2 3 4 5 6 7 8 9 1 ...
- Python: PDB命令
1. where(w) 找出当前代码运行位置 2. list(l) 显示当前代码的部分上下文 3. list <line number> 显示指定行的上下文 4. list <lin ...
- C语言泛型编程--抽象数据类型
一.数据类型: 在任何编程语言中,数据类型作为一个整体,ANSI-C包含的类型为:int.double.char……,程序员很少满意语言本身提供的数据类型,一个简单的办法就是构造类似:array.st ...
- Android Plugin
工欲善其事,必先利其器.以下介绍一些常用的Android Plugin,有助于开发. 1.adb-idea 支持在AS面板中,执行ADB命令.不过如果用惯命令行的话,可以不安装: 2.android- ...