ASP.NET MVC Web API使用示例


上篇博客講解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; }    
    }  
}  
View Code

接着我們在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);  
        }  
  
    }  
}  
View Code

只要做上面兩步就可以運行這個項目了,我們按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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM