首頁 »
2009/12/29

Web Application Toolkit for REST Services 簡介與操作示範

Web Application Toolkit for REST Services 簡介與操作示範
本篇為祭司的微軟教學及錄影文章
【邊做邊學 Web Application Toolkit 系列 1 - Web Application Toolkit for REST Services 簡介與操作示範】。既有的應用程式可從 HTTP 公開的 REST Service 服務獲得益處,且不需要開發人員重新架構整個應用程式,「Web Application Toolkit for REST Services」展示了為既有 Web 應用程式加入一個 REST Services 介面是多麼的容易,「Web Application Toolkit for REST Services」包含了一個以 REST Services 為基礎的線上拍賣網站範例,它公開了一個建立在 WCF 上的 REST Services 服務 API,且能夠為任何的 Client 端消費存取。

【邊做邊學 Web Application Toolkit 系列 1 - Web Application Toolkit for REST Services 簡介與操作示範】教學錄影請看微軟官方網站之網址:
http://msdn.microsoft.com/zh-tw/ee804736.aspx

一.REST Services 概觀

當今許多 Web 應用程式都試圖將資料公開成 REST Services 服務介面的形式,如此其他 Tiers 層的應用程式便能透過 REST API 存取資料,所謂的 RESTful Web Service 是一種以 HTTP 及 REST 原則實作的簡單 Web Services,REST Services 服務著眼點在於資源,每個資源是以獨一無二的 URI 來表示,而使用者透過 URI,以 HTTP 統一的介面與這些資源進行互動。

既有 的應用程式可從 HTTP 公開的 REST Service 服務獲得益處,且不需要開發人員重新架構整個應用程式,「Web Application Toolkit for REST Services」展示了為既有 Web 應用程式加入一個 REST Services 介面是多麼的容易,「Web Application Toolkit for REST Services」包含了一個以 REST Services 為基礎的線上拍賣網站範例,它公開了一個建立在 WCF 上的 REST Services 服務 API,且能夠為任何的 Client 端消費存取。


圖1 Web Application Toolkit for REST Services

二.Web Application Toolkit for REST Services 套件與專案範例

Web Application Toolkit for REST Services 工具套件附有許多資源,主要包括了:REST 範例程式、技術說明文件、WCF REST Starter Kit 組件與 VisualStudioTemplates 樣板,以下是說明。

● REST Services 範例程式

請 至以下網址下載安裝「Web Application Toolkit for REST Services」套件,預設解壓縮路徑為「C:RESTServices」,完成後請開啓 C:RESTServicescodeCSharp 路徑下的「RestServicesExample - All.sln」專案範例。
http://code.msdn.microsoft.com/WebAppToolkitREST


圖2 REST Services 範例專案程式

範例方案(Solution)中包含一個REST Services服務與兩個Client端應用程式範例專案,功用說明如下:

  1. REST Services 服務是公開 REST API,讓 Client 端可以透過 HTTP 網址來存取資料,其提供 REST 服務的是 AuctionService.svc 程式。
  2. 第一個 Client 端範例是 ASP.NET WebForm 形式的 Client 端應用程式,它會存取消費 REST Services 服務,並將取回資料顯示成書籍的線上拍賣畫面。


    圖3 以 ASP.NET WebForm 存取 REST Services 服務

  3. 第二個 Client 端範例是 Ajax Page 形式的 Client 端應用程式,它會以 Ajax 非同步的方式存取 REST Services 服務,並將取回資料顯示成日用品的線上拍賣畫面。


    圖4 以 Ajax 存取 REST Services 服務

● WCF REST Starter Kit 組件

在 C:RESTServiceslibsWCF REST Starter Kit Preview 2 目錄中,包含了三個 WCF REST 重要組件,分別是 Microsoft.Http.dll、Microsoft.Http.Extensions.dll 與 Microsoft.ServiceModel.Web.dll 組件,在專案範例中必須加入這三個組件參考,透過它來提供一些 REST 程式功能。

● VisualStudioTemplates 樣板

最 後 C:RESTServicesVisualStudioTemplates VisualStudioTemplates 中有一個 for Visual Studio的REST Services 安裝樣板,安裝程式名稱為「REST Service Web Application.vsi」,安裝後 VS 2008 會多出一個「REST Service Web Application」專案樣板,可讓您快速建立 REST Services 專案所需的基礎架構,至於如何使用 REST Services 這個專案樣板與消費 REST Services,則留待下一篇文章再深入介紹。


圖5 REST 服務專案樣板

● REST 技術說明文件

以瀏覽器開啓「C:RESTServicesdocsOverview.htm」檔案,裡面便是 REST 技術說明文件,包括了 REST URI 查詢語法及專案程式的基本說明。


圖6 REST 技術說明文件

三.以 URI 查詢 REST Services 公開資源的語法

在建立好 REST Services 服務後,最主要的核心重點之一,便是以 URI 語法來查詢所需的資料(指資源 Resource),下表是一些 URI 語法範例。

Resource URI Method
Categories - get all http://localhost:7100/RestServicesExample/AuctionService.svc/categories GET
Categories - get by ID http://localhost:7100/RestServicesExample/AuctionService.svc/categories/{CategoryId} GET
Items - get by ID http://localhost:7100/RestServicesExample/AuctionService.svc/items/{ItemId} GET
Items - get by category http://localhost:7100/RestServicesExample/AuctionService.svc/categories/{categoryId}/items GET
Items - closing items http://localhost:7100/RestServicesExample/AuctionService.svc/items/closing/{count} GET
Items - most viewed http://localhost:7100/RestServicesExample/AuctionService.svc/items/mostViewed/{count} GET
Items - most viewed - JSON format http://localhost:7100/RestServicesExample/AuctionService.svc/items/mostViewed/{count}/json GET
Bids - bids of an item http://localhost:7100/RestServicesExample/AuctionService.svc/items/{ItemId}/bids GET
Items - place Bid http://localhost:7100/RestServicesExample/AuctionService.svc/items/{ItemId}/bids?apiKey={apiKey} POST
Items - update Item http://localhost:7100/RestServicesExample/AuctionService.svc/items/{ItemId}?apiKey={apiKey} PUT

表1 以 URI 語法查詢 REST Services 服務

上 表使用的方式,其中第二個欄中的 URI 便是查詢語法,只要以 F5 執行 RestServicesExample 專案,便會執行 AuctionService.svc 程式,透過它來公開一些 REST Services 服務,在瀏覽器的網址輸入上表 URI 語法,便能查詢所需的資料,預設回傳資料格式為 XML,另外也支援 JSON 格式。例如在瀏覽器網址列輸入「http://localhost:7100/RestServicesExample /AuctionService.svc/categories」,其中「categories」就是 REST Services 公開的方法之一,下圖右側就是 XML 格式的回傳資料。


圖7 以 URI 查詢 RETS Services 服務

本 篇介紹了 REST Services 概觀,說明 REST Services 主要意義與精神,並對專案範例程式做初步解說,最後示範如何以 URI 查詢 REST Services,以取得資料回傳,至於如何讓 ASP.NET 或 Ajax 程式可以消費 REST Services,套用回傳資料,後續文章會實際帶領大家實作一番。



首頁│ 下一篇→Web Application Toolkit for REST Services 程式開發與資料存取
本文引用網址: