一、WebApi是什麼
二、與其類似的技術
ASP.NET Web Services(ASP.NET Web服務)
Windows Communication Foundation(Windows通信基礎 — WCF)
三、WebApi的簡單應用
打開VS2013,新建項目->
選擇WEB API
結果如下
Models中添加一個類,命名爲Product
代碼如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace MvcApplication1.Models { public class Product { public int Id { get; set; } public string Name { get; set; } public string Category { get; set; } public decimal Price { get; set; } } }
在Controllers中右鍵 添加一個控制器,在彈出的畫面中,給控制器重命名,WebApiController,然後在模板中選擇空Api控制
添加代碼
using MvcApplication1.Models; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; namespace MvcApplication1.Controllers { public class WebApiController : ApiController { Product[] products = new Product[]{ new Product{Id=1,Name="農夫山泉",Category="water",Price=2}, new Product{Id=2,Name="鋼筆",Category="study",Price=3.75M}, new Product{Id=3,Name="烤腸",Category="food",Price=1}, new Product{Id=4,Name="嶗山礦泉水",Category="water",Price=2}, new Product{Id=5,Name="鉛筆",Category="study",Price=3.75M}, new Product{Id=6,Name="烤羊肉",Category="food",Price=1}, }; public IEnumerable<Product> GetAllProducts() { return products; } public Product GetProductById(int id) { var product = products.FirstOrDefault((p) => p.Id == id); if (product == null) { throw new HttpResponseException(HttpStatusCode.NotFound); } return product; } public IEnumerable<Product> GetProductsByCategory(string categroy) { return products.Where((p) => string.Equals(p.Category, categroy, StringComparison.OrdinalIgnoreCase)); } } }
重新生成解決方案後,顯示如下圖,這是一個ASP.NET MVC視圖,它是由HomeControllers類返回的。
可以使用Postman測試工具來進行測試
輸入http://localhost:56438/api/webapi 這個url地址是得到所有的products
http://localhost:56438/api/webapi/2 根據id獲取product,效果如下