整合及擴充 Visual Studio Online 的功能:使用 REST APIs 及 Service Hooks

註: 內文提及Visual Studio Online已於 2015/11月改名為 Visual Studio Team Services

2013 年 11 月微軟正式推出 Visual Studio Online 這個線上服務,它提供了像是版本管控(支援 TFS 及 git)、協同合作、應用程式分析、自動建置以及自動測試等功能,適合企業開發團隊、小型開發團隊、甚至是個人開發來使用。最近 Visual Studio Online 推出了整合 Visual Studio Online 的解決方案,提供給第三方應用程式或服務,透過 REST APIsService hooks 的方式來存取使用者放在 Visual Studio Online 上的資料。

使用情境

Visual Studio Online 提供的 REST APIs 以及 Service hooks 讓開發人員可以在下列幾種情境下,利用 Visual Studio Online 來開發自己的解決方案:

  • 存取 Visual Studio Online 的資料。開發人員可以開發自己的網站或是行動裝置 app 來存取 Visual Studio Online 上的特定資料,例如工作項目、Bug 等,根據需求來客製化呈現的方式。
  • 驅動其它服務或應用程式接續操作。有了 service hooks,當程式碼透過 Visual Studio Online 的版本控制機製簽入時,可以驅動程式或通知其它服務或應用程式繼續操作,實現持續整合(continuous integration)的概念。
  • 服務內的工作自動化。可以結合其它專案管理或是工作流程,透過 REST APIs 在 Visual Studio Online 上存取或變更工作項目、Bug 的內容。
  • 推播通知。可將在 Visual Studio Online 上發生的任何動作,主動發送通知到開發團隊的行動裝置上。
  • 與既有服務結合。提供一個機會讓您可以與既有的系統介接(如:trac、GitHub、Trello 等等),不必改變工作流程。

Visual Studio Online REST APIs 範例

使用 Visual Studio Online REST APIs 主要都是為了存取 Visual Studio Online 上的資料,而這些 REST APIs 與一般提供服務的 REST APIs 一樣,支援基本驗證(帳號 + 密碼)、OAuth2 驗證、 透過 HTTP 的方法存取、使用 JSON 作為 API 傳遞的資料內容格式。

下面就是一個實際的例子,若在已驗證的狀態下進行這個 HTTP GET 呼叫

GET https://ericsk-demo.visualstudio.com/DefaultCollection/_apis/git/repositories?api-version=1.0-preview

則會回傳

 {
  "count":2,
  "value":[{
    "id":"ccce81dc-3737-4a25-b4dd-237fd2791236",
    "name":"我的旅遊專案",
    "url":"https://ericsk-demo.visualstudio.com/DefaultCollection/_apis/git/repositories/ccce81dc-3737-4a25-b4dd-237fd2791236",
    "project":{"id":"...
}

這樣的內容,所以您便能使用這些資料做處理或是自定介接的方式。

您可以從這篇文章瞭解如何使用 Visual Studio Online 的 REST APIs。

Service Hooks 的概念

Service hooks 主要是提供一個 PubSub 的機制,當 Visual Studio Online 上某個事件(event) 發生時,會主動通知訂閱(subscription)這個 event 的應用程式。比方說,這樣一來您便可以在開發人員把程式碼透過版本控制簽入 Visual Studio Online 時,送個通知到你已經訂閱這個動作的服務上。

而 Visual Studio Online 目前也已經整合了一些既有的第三方服務支援 service hooks:


想要瞭解更多整合 Visual Studio Online 的訊息,在 Visual Studio Integration 頁面中有詳細的介紹以及 API 參考資料。

原始文章發佈於「開發者之魂」部落格