1.當我們創建WebApi的時候我們的項目下的Contorls文件夾下的ValuesController文件下會出現這么幾個方法:

// GET http://程序ip:程序端口/api/values public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // GET http://程序ip:程序端口/api/values/5 public string Get(int id) { return "value"; } // POST http://程序ip:程序端口/api/values public void Post([FromBody]string value) { } // PUT http://程序ip:程序端口/api/values/5 public void Put(int id, [FromBody]string value) { } // DELETE http://程序ip:程序端口/api/values/5 public void Delete(int id) { }
使用Postman工具及谷歌瀏覽器請求后分別獲取到如下結果:(后期將統一使用Postman自己到網上下載或到這里我提供的安裝包網站下載)
是不是發現webapi請求語法並不是那么的好用,為了讓其更符合我們的使用習慣,那么我們開始設計路由吧!
2.修改路由規則,使得使用更符合我們平常使用MVC的設計程序的習慣:
(1) 將routeTemplate: "api/{controller}/{id}",修改為routeTemplate: "api/{controller}/{action}/{id}",
(2) 之后你就發現我們也需要傳方法名稱才可以到指定的方法了,你是不是已經會自己配置路由了
3.上面已經教大家如何修改全局路由了,那么修改完后我們在get請求的要這樣使用,其中model模型自己創建哦
(1) 方法

//1、 Get 方法的參數。http://程序ip:程序端口/api/values/Login?phoneNum=123&password=123 [HttpGet] public string Login(string phoneNum, string password) { return string.Format("phoneNum:{0},password:{1}", phoneNum, password); } //這樣寫就行 //如果用模型對象,則必須標注[FromUri],http://程序ip:程序端口/api/values/Login?phoneNum=123&password=123 [HttpGet] public bool Login2([FromUri]LoginModel model) { if (model.phoneNum =="123" && model.password == "123") { return true; } else { return false; } }
(2)model對象

public class LoginModel { public string userName { get; set; } public string phoneNum { get; set; } public string password { get; set; } }
是不是和MVC中的使用基本一樣了呢?
注意:如果參數用模型對象,則必須標注[FromUri]不然你會獲取不到值呢!
原因分析:還記得有面試題問過get和post請求的區別嗎?其中有一個區別就是get請求的數據會附在URL之后(就是把數據放置在HTTP協議頭中),而post請求則是放在http協議包的包體中。