ASP.NET Web API 是一種框架,用於輕鬆構建能夠由多種客戶端(包括瀏覽器和移動設備)訪問的 HTTP 服務。ASP.NET Web API 是一種用於在 .NET Framework 上構建 RESTful 應用程序的理想平臺。html
能夠把WebApi當作Asp.Net項目類型中的一種,其餘項目類型諸如咱們熟知的WebForm項目,Windows窗體項目,控制檯應用程序等。web
WebApi類型項目的最大優點就是,開發者不再用擔憂客戶端和服務器之間傳輸的數據的序列化和反序列化問題,由於WebApi是強類型的,能夠自動進行序列化和反序列化,一下子項目中會見到。api
Web API最重要的是能夠構建面向各類客戶端的服務。另外與WCF REST Service不一樣在於,Web API利用Http協議的各個方面來表達服務(例如 URI/request response header/caching/versioning/content format),所以就省掉不少配置。瀏覽器
當你遇到如下這些狀況的時候,就能夠考慮使用Web API了。緩存
1. 支持基於Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操做服務器
經過不一樣的http動做表達不一樣的含義,這樣就不須要暴露多個API來支持這些基本操做。框架
2. 請求的回覆經過Http Status Code表達不一樣含義,而且客戶端能夠經過Accept header來與服務器協商格式,例如你但願服務器返回JSON格式仍是XML格式。函數
3. 請求的回覆格式支持 JSON,XML,而且能夠擴展添加其餘格式。工具
4. 原生支持OData。post
5. 支持Self-host或者IIS host。
6. 支持大多數MVC功能,例如Routing/Controller/Action Result/Filter/Model Builder/IOC Container/Dependency Injection。
一、它是基於SOAP協議的,數據格式是XML。
二、只支持HTTP協議。
三、它不是開源的,但能夠被任意一個瞭解XML的人使用。
四、它只能部署在IIS上。
一、這個也是基於SOAP的,數據格式是XML。
二、這個是Web Service(ASMX)的進化版,能夠支持各類各樣的協議,
像TCP,HTTP,HTTPS,Named Pipes, MSMQ.。
三、WCF的主要問題是,它配置起來特別的繁瑣。
四、它不是開源的,但能夠被任意一個瞭解XML的人使用。
五、它能夠部署應用程序中或者IIS上或者Windows服務中。
一、想使用WCF Rest service,你必須在WCF中使用webHttpBindings。
二、它分別用[WebGet]和[WebInvoke]屬性,實現了HTTP的GET和POST動詞。
三、要想使用其餘的HTTP動詞,你須要在IIS中作一些配置,使.svc文件能夠接受這些動詞的請求。
四、使用WebGet經過參數傳輸數據,也須要配置。並且必須指定UriTemplate。
五、它支持XML、JSON以及ATOM這些數據格式。
一、這是一個簡單的構建HTTP服務的新框架。
二、在.net平臺上Web API 是一個開源的、理想的、構建REST-ful 服務的技術。
三、不像WCF REST Service.它可使用HTTP的所有特色(好比URIs、request/response頭,緩存,版本控制,多種內容格式)。
四、它也支持MVC的特徵,像路由、控制器、action、filter、模型綁定、控制反轉(IOC)或依賴注入(DI),單元測試。這些可使程序更簡單、更健壯。
五、它能夠部署在應用程序和IIS上。
六、這是一個輕量級的框架,而且對限制帶寬的設備,好比智能手機等支持的很好。
七、Response能夠被Web API的MediaTypeFormatter轉換成Json、XML 或者任何你想轉換的格式。
1.新建一個Asp.net空應用程序
2.選擇WebAPI
3.這裏咱們新增一個名爲PersonController的Web Api2控制器
3.在控制器中寫3個簡單的方法
1 public class PersonController : ApiController 2 { 3 //不帶參數的方法 4 public string[] Get() 5 { 6 return new string[] { "shuke", "beta", "tom" }; 7 } 8 //根據學生ID查詢學生姓名 9 public string Get(int id) 10 { 11 if (id == 1) 12 { 13 return "shuke"; 14 } 15 else 16 { 17 return "beta"; 18 } 19 } 20 //返回學生姓名的長度 21 public int Get(string name) 22 { 23 return name.Length; 24 } 25 }
4.到這裏一個簡單的Web API項目就建立完成了,點擊運行
直接運行,不會直接跳轉到到咱們寫的api裏面,這裏咱們要將地址後面加上文件地址加上這裏指定的後綴(也能夠改成別的),這裏個人是api/Person/
在瀏覽器地址加入後綴,當id=1是,能夠看到這裏結果爲shuke,那麼到這裏就成功查詢出來了。
5.調試工具推薦:到這裏基本一個webapi項目就完成了,剩下了就是顯示了。首先得先運行項目,而後再瀏覽器地址欄找到網址,而後複製到postman中,而後再調用相關的函數。咱們在作大型項目是在瀏覽器調試會有諸多不便,這裏推薦一個經常使用的接口調試工具Postman。
PostMan地址 :https://www.getpostman.com/