Asp.NET Web API 2系列(一):初識Web API及手動搭建基本框架
1.導言
隨著Web技術的發展,現在各種框架,前端的,後端的,數不勝數。全棧工程師的壓力越來越大。 PC端,pad端,移動端App(安卓/IOS)的發展,使得前後端一體的開發模式十分笨重。因此,前後端分離是web發展的趨勢,其中,RESTful API是目前前後端分離的最佳實踐,ASP.NET Web API是在.NET Framework上構建RESTful應用程式的理想平臺。Web API應用如下圖所示。
2.ASP.NET Web API介紹
ASP.NET Web API是一個框架,可以輕鬆構建HTTP服務,覆蓋廣泛的客戶端,包括瀏覽器和移動裝置。 ASP.NET Web API是在.NET Framework上構建RESTful應用程式的理想平臺。其中,RESTful屬於一種設計風格,REST中的GET,POST,PUT DELETE來進行資料的增刪改查,如果開發人員的應用程式符合RESTful原則,則它的服務稱為"RESTful風格應用服務"。
ASP.NET Web API核心的訊息處理管道獨立於ASP.NET平臺,比Asp.NET MVC設計的管道更為複雜,功能也更為強大,支援Web Host和Self Host(任意型別的應用程式,如控制檯、Windows Form應用程式、WPF應用甚至Windows Service)兩種寄宿方式,本文主要介紹第一種方式。Web API整個生命週期如下圖所示。
3.手動搭建基本框架
Visual Studio為我們提供了專門用於建立ASP.NET Web API應用的專案模板,藉助於此專案模板提供的嚮導,我們可以“一鍵式”建立一個完整的ASP.NET Web API專案。在專案建立過程中,Visual studio會自動為我們新增必要的程式集引用和配置,甚至會為我們自動生成相關的程式碼,總之—句話:這種通過嚮導生成的專案在被建立之後其本身就是—個可執行的應用。筆者在此就不在演示自動建立的過程,重點講解手動搭建,這樣可以讓我們更深入的瞭解Web API的執行原理。
(1)建立空的ASP.NET Web 應用程式
在VS2017中,選擇ASP.NET Web 應用程式(.NET Framework),框架選擇.NET Framework4.5,如下圖所示。
選擇空專案,同時去掉MVC及Web API選項,如下圖所示。
(2)通過NuGet下載安裝Microsoft.Asp.Net.Api
右鍵專案,選擇【管理 NuGet 程式包】,搜尋WebAPI,選擇Microsoft.Asp.Net.Api,點選右側【安裝】按鈕,完成安裝,如下圖所示。
(3)新增全域性應用程式類Global.asax
右鍵專案,新增新建項,選擇全域性應用程式類,如下圖所示。
global.asax是一個文字檔案,它提供全域性可用程式碼。這些程式碼包括應用程式的事件處理程式以及會話事件、方法和靜態變數。有時該檔案也被稱為應用程式檔案。開啟檔案,程式碼如下所示,發現該檔案包含了Web應用程式入口Application_Start,這和WinForm應用程式的main函式類似。
namespace MyWebAPI { public class Global : System.Web.HttpApplication { protected void Application_Start(object sender, EventArgs e) { } protected void Session_Start(object sender, EventArgs e) { } protected void Application_BeginRequest(object sender, EventArgs e) { } protected void Application_AuthenticateRequest(object sender, EventArgs e) { } protected void Application_Error(object sender, EventArgs e) { } protected void Session_End(object sender, EventArgs e) { } protected void Application_End(object sender, EventArgs e) { } } }
(4)註冊Web API路由
路由系統是請求訊息進入ASP.NET Web API 訊息處理管道的第一道屏障,其根本目的用於解析URL請求,在後續的系列文章中會詳細講解,這裡就不深入講解。
在Application_Start函式中註冊Web API路由,程式碼如下:
protected void Application_Start(object sender, EventArgs e) { GlobalConfiguration.Configuration.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional }); }
(5)新增Web API控制器
右鍵專案,新增新建項,選擇Web API控制器類,如下圖所示。
開啟ValuesController.cs檔案,發現該類直接繼承與ApiController,且包含了GET,POST,PUT DELETE等Action,程式碼如下所示,控制器在後續系列文章中會詳細講解,這裡也不過講解。
public class ValuesController : ApiController { // GET api/<controller> public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // GET api/<controller>/5 public string Get(int id) { return "value"; } // POST api/<controller> public void Post([FromBody]string value) { } // PUT api/<controller>/5 public void Put(int id, [FromBody]string value) { } // DELETE api/<controller>/5 public void Delete(int id) { } }
(6)呼叫Web API
執行程式(自動建立IIS服務),在位址列中輸入http://localhost:52317/api/Values呼叫了ValuesController中的Get()方法,Google瀏覽顯示的呼叫結果如下所示。
4.總結
至此,完成了ASP.NET Web API的基本介紹和手動構建Web API基本框架的詳細步驟。通過此部落格讀者可以更加深入的認識和了解Web API,文中若有不足之處,還望海涵,博文寫作不易希望多多支援,後續會更新更多內容,感興趣的朋友可以加關注,歡迎留言交