學習ASP.NET MVC一年多來,現在該學學Web Api了。API與ASP.NET MVC的Controller差不多。前者只是返回數據序列化和發送給客戶端; 后者返回View或Render View。
當你在專案中創建第一個Web Api時,它會自動產生一個文檔和修改了web.config。如我們先在專案下添加一個Apis目錄,是用來存放api控制器的。
創建完成之后,它會顯示一個txt文檔:
這個readme.txt是告訴你需要修改Globel.asax文檔,步驟為1,2,3:
其實它還自動產生下面這個文檔,WebApiConfig.cs並放在App_Start目錄之下。
另外你會發現web.config還被修改,它自動添加了一段:
下面Insus.NET創建一個model:
創建一個Entity,實體即是數據集散地,數據源於文檔,數據庫,xml等:
接下來,我們可以完善Api了,它有繼承ApiController類。
現在我們測試一下,寫好的Web Api是否能正常運行,在瀏覽器的地址欄上輸入:
404錯誤,是什么情況? 經查閱資料,原來Global.asax配置有問題。因為創建第一個api時,它自動產生的WebApiConfig.cs,然后需要手動注冊於Application_Start()方法內。
但是
RouteConfig.RegisterRoutes(RouteTable.Routes);
和
GlobalConfiguration.Configure(WebApiConfig.Register);
是有序次關系的。也就是說,asp.net mvc是先執行GlobalConfiguration.Configure(WebApiConfig.Register)之后,再執行RouteConfig.RegisterRoutes(RouteTable.Routes)。我們在手動注冊時,就需要注意到這點。它們正確的配置如下:
一切准備就緒,我們創建一個.html網頁,使用javascript或理jQuery去讀取api的數據。
在專案中,新一個Orders目錄,是用來存放一切與order相關.html文件。
還有jQuery代碼沒寫呢,沒有什么問題,相信不是很難,因為以前有練習無數次了: