前幾天看了.NET的EF(Entity Framework),發現居然有這麼先進的東西,只要操作幾個類就可以完成資料庫的增刪查改,而且可以用資料庫直接導出類(DB First)、也可以用類來生成資料庫(Code First),簡直太先進了。 之前用EF做一個API服務的網站,每次要添加一條方法就要在 ...
前幾天看了.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"));