ASP.NET MVC 4 包含了 ASP.NET Web API, 這是一個建立可以連線包括瀏覽器、移動裝置等多種客戶端的 Http 服務的新框架, ASP.NET Web API 也是構建 RESTful 服務的理想平臺。
ASP.NET Web API 包含下列特性:
- 先進的 HTTP 程式設計模型: 使用新的強型別的 HTTP 物件模型直接操作 HTTP 請求和響應, 在 HTTP客戶端使用相同的程式設計模型和 HTTP 管道;
- 支援路由: Web API 完整支援 ASP.NET 路由, 包括路由引數和約束。 此外, 到動作的對映支援約定, 從此將不再需要向類或者方法新增類似於 [HttpPost] 之類的屬性;
- 內容協商: 客戶端與服務端可以一起決定 API 返回資料的格式。 預設支援 XML, JSON 以及 Form URL-Encoded 格式, 可以擴充套件新增自定義格式, 甚至可以替換掉預設的內容協商策略;
- 模型繫結與驗證: 模型繫結器可以輕易地從 HTTP 請求中提取資料並轉換成在動作方法中使用的 .NET物件
- 過濾: Web API 支援過濾, 包括總所周知的 [Authorize] 過濾標記, 可以為 Action 新增並插入自定義過濾, 實現認證、異常處理等;
- 查詢聚合: 只要簡單的返回 Iqueryable<T> , Web API 將會支援通過 OData 地址約定進行查詢;
- 改進的 HTTP細節可測試性: Web API 不是將 HTTP 細節設定到一個靜態的 Context 物件上, 而是使用 HttpRequestMessage 和 HttpResponseMessage 例項, 可以使用這些物件的泛型版本為這些 Http 型別新增自定義型別;
- 改進的依賴反轉 (IoC) 支援: Web API 使用 MVC Dependency Resolver 實現的服務定位器模式在不同的場景下來獲取例項;
- 基於程式碼的配置: Web API 單獨使用程式碼完成配置, 從而保證了配置檔案的整潔;
- 自託管 (Self-Host) : Web API 除了可以託管在 IIS 中, 還可以託管在程式中,依舊可以使用路由以及其它的特性。