您好,登錄后才能下訂單哦!
上篇博客講解rest服務開發時,曾經提到過asp.net mvc中的rest api,由于篇幅原因,沒有在上篇博客中進行講解,這里專門拿出來進行討論。還是一樣引用上次的案例,用asp.net mvc提供的web api來進行IP地址歸宿地查詢接口的開發。
由于我機器裝的是win8企業版操作系統,VS版本是2012,因此我們選擇使用VS自帶的MVC4模版中的Web API來創建一個項目。
點擊確定后,VS會自動為我們創建一個完整的可運行的ASP.NET Web API的項目。
從項目的目錄結構可以看出,ASP.NET Web API與ASP.NET MVC項目的結構幾乎一致。我們刪除為我們默認創建并打開的ValuesController文件(示例性文件,可以參考)。
既然要打造一個IP地址查詢服務接口,為了跟上文的服務形式一致,我們還是使用GET請求方式的服務,不過我們這次使用MVC中的Web API來實現。
首先在Models文件夾中建立一個Address模型類。
namespace MvcWebApi.Models { public class Address { public string IPAddress { get; set; } public string Province { get; set; } public string City { get; set; } } }
接著我們在Controllers文件夾下建立一個IPAddressController控制器,需要注意的是,這個IPAddressController一定要繼承自ApiController類,這樣服務才能暴露出來。
namespace MvcWebApi.Controllers { public class IPAddressController : ApiController { private static IList<Address> addresses = new List<Address> { new Address(){ IPAddress="1.91.38.31", Province="北京市", City="北京市" }, new Address(){ IPAddress = "210.75.225.254", Province = "上海市", City = "上海市" }, }; public IEnumerable<Address> GetIPAddresses() { return addresses; } public Address GetIPAddressByIP(string IP) { return addresses.FirstOrDefault(x => x.IPAddress == IP); } } }
只要做上面兩步就可以運行這個項目了,我們按Ctrl+F5運行整個項目,出現了如下的頁面。
我們點擊右上角的API鏈接。
可以看到我們定義的Web API的接口的使用方法以及說明。
既然是服務,能夠被其它程序調用就需要一個持續保障它運行的環境,我們可以將這個寫好的Web API的項目發布到IIS當中。
我們可以使用VS自帶的發布功能進行發布,并映射到IIS應用程序目錄當中。
我們點擊IIS右側的瀏覽,看看服務有沒有能夠正常運行。
我們按照文檔的提示,我們在地址欄輸入http://192.168.0.2/webapi/api/ipaddress。
可以看到,我們收到了Web API定義的服務提供的數據。同樣的我們試一下另外一個接口方法。
OK,這樣就好了。
但是如果我們需要返回JSON格式怎么辦呢?有個簡便的方法,在Global.asax.cs文件中,添加一個方法即可。
關于這段代碼的原因,可以參考:http://blog.miniasp.com/post/2012/10/12/ASPNET-Web-API-Force-return-JSON-format-instead-of-XML-for-Google-Chrome-Firefox-Safari.aspx,這里不重復。
我們運行這個項目后,重復發布。
當我們再次在瀏覽器中運行時,就可以看到默認返回的是JSON格式了(IE默認就是JSON)。
ASP.NET Web API就開發好了,至于在C#程序中怎么調用,可以參考我上篇博客中的代碼。如果要在頁面中調用,可以通過JQuery等JS庫請求URL即可。
參考資料:
http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api
http://blog.miniasp.com/post/2012/10/12/ASPNET-Web-API-Force-return-JSON-format-instead-of-XML-for-Google-Chrome-Firefox-Safari.aspx
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。