天天看點

Visual Studio建立webapi示例

  以前接觸的應用系統內建,不管是.net對.net,還是.net對java,主要使用的內建方式是用WebService方式進行內建。近期需要與另外一個基于java的開發平台內建,要求使用webapi進行內建。之前參與的項目,主要都是C/S架構程式的開發,幾乎沒有接觸過webapi,本文用于入門學習webapi的建立。對于webapi的概念及其與WebService的差別,可以檢視參考文獻,這裡就直接介紹如何使用vs建立webapi。

  首先是确認一下從.net framework哪個版本開始支援建立WebAp,百度搜尋了一些資料,WebApi的建立模闆是從VS2012(參考文獻8)開始提供的,支援建立WebAPI的.net framework是從4開始的(參考文獻8)。個人安裝的VS2019中,如果是選擇.net framework3.5或者.net framework4,在建立ASP.NET web應用程式的導航中,是沒有webapi的模闆的,如下圖所示。

Visual Studio建立webapi示例
Visual Studio建立webapi示例
Visual Studio建立webapi示例

  選擇.net framework4.5後,在建立ASP.NET web應用程式的導航中就包含有webapi模闆。

Visual Studio建立webapi示例
Visual Studio建立webapi示例

  建立好的初始界面如下圖所示,初始的檔案夾和檔案的意義可以參考文獻9,裡面介紹的比較詳細:

Visual Studio建立webapi示例

  WebApiConfig檔案中的Register類用于定義WebApi的調用路徑模闆。

Visual Studio建立webapi示例

  項目初始化的Controllers檔案夾中自帶了HomeController和ValuesController,其中HomeController繼承自Controller類,ValuesController類繼承自ApiController類。

  自動産生的ValuesController類代碼看着比較好了解,應該包含的函數主要是對應着HTTP協定中的Get、Post、Put、Delete等方法,兩個Get重載函數應該是在連結中帶參數和不帶參數的函數處理情況。

public class ValuesController : ApiController
    {
        // GET api/values
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/values/5
        public string Get(int id)
        {
            return "value";
        }

        // POST api/values
        public void Post([FromBody]string value)
        {
        }

        // PUT api/values/5
        public void Put(int id, [FromBody]string value)
        {
        }

        // DELETE api/values/5
        public void Delete(int id)
        {
        }
    }
           

  運作VS,在網頁中輸入位址:http://localhost:59944/api/values,顯示的結果如下:

Visual Studio建立webapi示例

  在網頁中輸入:http://localhost:59944/api/values/7,顯示的結果如下:

Visual Studio建立webapi示例

  上面的顯示内容與ValuesController中對應的Get函數的傳回資料相同。感覺這種方式與java中的Servlet的實作方式和調用方式類似。

  本文可能連入門都算不上,隻是驗證了在VS中建立WebApi的過程,甚至都沒有自己寫代碼,完全使用的是VS自動建立的代碼。目前工作中使用的最多的內建還是WebService,後續會根據工作需要逐漸了解學習WebApi。

參考文獻:

[1]Web Api ——建立WebAPI,https://www.cnblogs.com/xtblog/p/8099382.html

[2]重溫ASP.NET WebAPI(一)初階,https://www.cnblogs.com/ruanyifeng/p/5455001.html

[3]SOAP webserivce 和 RESTful webservice 對比及差別,https://blog.csdn.net/huojiao2006/article/details/58061520

[4]Asp.Net WebApi核心對象解析(一),https://www.jianshu.com/p/063f5cf4b2af

[5]https://social.msdn.microsoft.com/Forums/vstudio/en-US/5036f149-a297-4f54-960e-3e5cc4c95f90/aspnet-web-api-net-framework-support?forum=wcf

[6]https://www.c-sharpcorner.com/article/introduction-to-asp-net-web-api/

[7]https://www.tutorialsteacher.com/webapi/create-web-api-project

[8]Web API(二):Web API概述,https://www.cnblogs.com/dotnet261010/p/8586424.html

[9]Web API(三):建立Web API項目,https://www.cnblogs.com/dotnet261010/p/8588646.html

繼續閱讀