摘要:ASP.NET Web API - Part 1. Introduction
What is Web API
最近看到許多知名的社群網站都使用了 Web API的服務,Web API 服務是通過一般公開的 HTTP,而不是通過比較複雜的服務像 Web Service 或 Windows Communication Foundation (WCF)。Web API 這種服務方式,可以容易的和客戶端做資料的交換,而客戶可以使用不同的設備來顯示資料,比如網頁、手機 等。目前有許多大型的服務比如像 Facebook. 最常見的例子,你可以藉由Facebook 的API 在你自己的網頁有 “讚”的功能。而你所需要做的只是很簡單的一串 script,就像 https://www.facebook.com/plugins/like.php?href=YOUR_URL。在未來的趨勢,Web API 的開發和使用率會更加快速成長。
Introduction ASP.NET Web API
ASP.NET Web API 是MVC 4.0 的一項新功能。ASP.NET Web API 整合了WCF 和 ASP.NET功能,WCF REST 將會被 ASP.NET Web API 取代。ASP.NET Web API 是個框架Framework,而這Framework 可以讓你很簡單的建置 HTTP 服務 (HTTP Services)。HTTP Service 可以讓很多類型的客戶端做串接,比如網頁、手機甚至 windows service、windows Form。ASP.NET Web API 也是建置 RESTful 理想平台。
在我簡單用程式介紹 ASP.NET Web API 之前,我們要先知道為何要使用 ASP.NET Web API。
- ASP.NET Web API 可以配合客戶需要的格式做開發,使的妳的產品可以更被廣大的客戶接受。客戶不單可以使用網頁,手機來溝通,其他各種設備也可以使用這服務。你甚至可以當做其他系統的服務介面。
- ASP.NET Web API 使用 Content Negotiation 讓你簡單的產出客戶需要的格式。格式有 XML、JSON、Form URL-encoded。而且你也可以有自己客製化的格式,只要你和客戶之間定義好就可以。
-
Scale with the Cloud (容易和雲端間接)
使用 Asynchronous task base service framework 可以產生輕型的 Hosting options 包含 windows azure 或 worker roles。 -
Embrace Http (跟隨 Http 的規範)
HTTP 是 Application level protocol 而且大部分客戶都支援. 它簡單化了和客戶之間的串接。
一個簡單的 ASP.NET Web API
我用一個簡單的程式範例來講解 如何用 ASP.NET Web API 來做 HTTP service 和客戶傳送資料
開啟 Microsoft Visual Studio 2012,選擇 ASP.NET MVC 4 Web Application, 然後名稱 改成 MvcSampleHttp。
選擇 Web API 範本,然後按下 OK。
這時會有一個 MVC 4 的範本專案產出,展開 Controller 檔案,你可以看到 VauesController.cs 。開啟 ValuesController.cs。
會出現新的 ApiController,就像範例的 ValuesController 繼承了 ApiController。
而在 ValuesController 裏有幾個範例的方法,GET、POST、PUT and DELETE。假如你非常了解 HTTP,那你就知道 GET、POST、PUT and DELETE 就是正規的 HTTP Verb。
而以上這些方法使用了 正規的ASP.NET MVC routing behavior。你可以先開啟 Global.asax.cs。
在 WebApiConfig 設定了routing behaviour,詳細設定在 App_Start 的 WebApiConfig.cs。
我們可以看到正規的 Route設定,一個Api 的Route 設定, {api}/{controller}/{id}。Api不需要 action,因為它已經對應了 HTTP Verbs、GET、POST、PUT 和 DELETE。
因為我目前只做簡單範例,所以我們利用 IE 的 Developer Tool 來檢查回值,按 Ctrl + F5,這時網頁會開起此專案。按 F12,開啟 Developer Tool。
在Developer Tool,選擇 Network tab,然後按下 Start capture。
記得之前的 Api Route,{api}/{controller}/{id} 這時去改 URL 成 http://localhost:xxx/api/values,然後按Enter。
這時點選 Detail view,然後選擇 Response body。你應該會看到 Jason format 的 2個值 value1 & value2。而這兩個值就是來自於ValuesController 的GET。
public IEnumerable Get()
{
return new string[] { "value1", "value2" };
}
以上就是簡單的 Web API 的介紹,下篇文章會介紹如何用 Web API 來實作 CRUD。(ASP.NET Web API - Part 2. 實作 CRUD)



