上篇博客講解rest服務(wù)開發(fā)時,曾經(jīng)提到過asp.net mvc中的rest api,由于篇幅原因,沒有在上篇博客中進(jìn)行講解,這里專門拿出來進(jìn)行討論。還是一樣引用上次的案例,用asp.net mvc提供的web api來進(jìn)行IP地址歸宿地查詢接口的開發(fā)。
由于我機(jī)器裝的是win8企業(yè)版操作系統(tǒng),VS版本是2012,因此我們選擇使用VS自帶的MVC4模版中的Web API來創(chuàng)建一個項(xiàng)目。
點(diǎn)擊確定后,VS會自動為我們創(chuàng)建一個完整的可運(yùn)行的ASP.NET Web API的項(xiàng)目。
從項(xiàng)目的目錄結(jié)構(gòu)可以看出,ASP.NET Web API與ASP.NET MVC項(xiàng)目的結(jié)構(gòu)幾乎一致。我們刪除為我們默認(rèn)創(chuàng)建并打開的ValuesController文件(示例性文件,可以參考)。
既然要打造一個IP地址查詢服務(wù)接口,為了跟上文的服務(wù)形式一致,我們還是使用GET請求方式的服務(wù),不過我們這次使用MVC中的Web API來實(shí)現(xiàn)。
首先在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類,這樣服務(wù)才能暴露出來。
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); } } }
只要做上面兩步就可以運(yùn)行這個項(xiàng)目了,我們按Ctrl+F5運(yùn)行整個項(xiàng)目,出現(xiàn)了如下的頁面。
我們點(diǎn)擊右上角的API鏈接。
可以看到我們定義的Web API的接口的使用方法以及說明。
既然是服務(wù),能夠被其它程序調(diào)用就需要一個持續(xù)保障它運(yùn)行的環(huán)境,我們可以將這個寫好的Web API的項(xiàng)目發(fā)布到IIS當(dāng)中。
我們可以使用VS自帶的發(fā)布功能進(jìn)行發(fā)布,并映射到IIS應(yīng)用程序目錄當(dāng)中。
我們點(diǎn)擊IIS右側(cè)的瀏覽,看看服務(wù)有沒有能夠正常運(yùn)行。
我們按照文檔的提示,我們在地址欄輸入http://192.168.0.2/webapi/api/ipaddress。
可以看到,我們收到了Web API定義的服務(wù)提供的數(shù)據(jù)。同樣的我們試一下另外一個接口方法。
OK,這樣就好了。
但是如果我們需要返回JSON格式怎么辦呢?有個簡便的方法,在Global.asax.cs文件中,添加一個方法即可。
關(guān)于這段代碼的原因,可以參考:http://blog.miniasp.com/post/2012/10/12/ASPNET-Web-API-Force-return-JSON-format-instead-of-XML-for-Google-Chrome-Firefox-Safari.aspx,這里不重復(fù)。
我們運(yùn)行這個項(xiàng)目后,重復(fù)發(fā)布。
當(dāng)我們再次在瀏覽器中運(yùn)行時,就可以看到默認(rèn)返回的是JSON格式了(IE默認(rèn)就是JSON)。
ASP.NET Web API就開發(fā)好了,至于在C#程序中怎么調(diào)用,可以參考我上篇博客中的代碼。如果要在頁面中調(diào)用,可以通過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
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。
新聞標(biāo)題:ASP.NETMVCWebAPI使用示例-創(chuàng)新互聯(lián)
URL標(biāo)題:http://chinadenli.net/article6/ddehog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、建站公司、網(wǎng)站設(shè)計公司、網(wǎng)站制作、營銷型網(wǎng)站建設(shè)、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容