整合及擴充 Visual Studio Online 的功能:使用 REST APIs 及 Service Hooks
2013 年 11 月微軟正式推出 Visual Studio Online 這個線上服務,它提供了像是版本管控(支援 TFS 及 git)、協同合作、應用程式分析、自動建置以及自動測試等功能,適合企業開發團隊、小型開發團隊、甚至是個人開發來使用。最近 Visual Studio Online 推出了整合 Visual Studio Online 的解決方案,提供給第三方應用程式或服務,透過 REST APIs 及 Service 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 參考資料。