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,文中若有不足之處,還望海涵,博文寫作不易希望多多支持,後續會更新更多內容,感興趣的朋友可以加關注,歡迎留言交流!
轉載自:http://www.cnblogs.com/aizai846/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章