前幾天看了.NET的EF(Entity Framework),發現居然有這么先進的東西,只要操作幾個類就可以完成數據庫的增刪查改,而且可以用數據庫直接導出類(DB First)、也可以用類來生成數據庫(Code First),簡直太先進了。
之前用EF做一個API服務的網站,每次要添加一條方法就要在View來解析傳來的QueryString,然后調用Controller 來執行對數據庫的增刪查改。其實之前就一直都是聽說過WebAPI,雖然一直沒用過。今天抽空查了一下,完全符合我的應用需求——ASP.NET Web API 是一種框架,用於輕松構建可以被多種客戶端(包括瀏覽器和移動設備)訪問的 HTTP 服務,類似於各個大廠的開放接口。
- 准備材料:
VS 2015 社區版 (安裝了Web開發工具)
- 基本步驟
基本按照向導來就行
選擇WebAPI,然后稍等一會VS會幫你創建一個自帶例程的工程
我們選擇Controllers文件夾,右鍵選擇添加“控制器”DefaultController ,選擇一個WebAPI 空控制器
添加如下代碼
public class DefaultController : ApiController { /// <summary> /// 設置一個對象 /// </summary> /// <param name="aa">A</param> /// <param name="bb">B</param> /// <returns></returns> [HttpGet] public Exception Set(string aa, int bb=0) { return new Exception(aa+bb); } /// <summary> /// 獲取一個值 /// </summary> /// <returns>浮點</returns> public float Get() { return 2; } }
然后我們Ctrl+F5運行試試,額,我們得到一個這樣的主頁。好像什么都沒有,莫方。點擊左上角的“API”就可以按到所有的API列表了,API和控制器一般是一一對應的。可以在最后找到我們寫的一個類和里面的2個函數。這樣簡直太方便了了,省去了我之前View層的解析工作,可以讓客戶端遠程調用服務器上的類。
附:
一.關於注釋的問題
你看我們剛剛明明寫了XML注釋但是API的Description為什么用空的呢?這個Help頁面肯定是有這個功能的。要打開這個功能還要進行一下幾個操作:
1. 生成XML注釋文件
調出項目屬性-“生成”,把A這里給勾上(勾上這個的哈,如果你的類或方法要是沒有注釋,就好有提醒,不喜歡的話就在B出填上1591)
2. 讓HelpPage讀取XML
定位到Areas/HelpPage/App_Start/HelpPageConfig.cs,把Register方法的前兩句注釋去掉,在后面的路徑填上你的XML的路徑,OK。
3. 來看看效果
有了這個幫助頁面,就不用給前台寫單獨的文檔了,大家都明白!
二.設置默認返回Json
這個返回的結果是XML的,雖然可以在請求是設置返回Json,但是有人不喜歡這樣的話,就是要設置默認返回Json的話,可以這樣做:
定位到App_Start/WebApiConfig.cs 的Register方法,添加一下代碼即可
GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear(); //默認返回 json GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add( new QueryStringMapping("datatype", "json", "application/json")); //返回格式選擇 datatype 可以替換為任何參數 GlobalConfiguration.Configuration.Formatters.XmlFormatter.MediaTypeMappings.Add( new QueryStringMapping("datatype", "xml", "application/xml"));