《Asp.Net Web API》 ----webApi的簡單應用

一、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; }
    }
}
View Code

在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));

        }

    }
}
View Code

 

 重新生成解決方案後,顯示如下圖,這是一個ASP.NET MVC視圖,它是由HomeControllers類返回的。

 

 

可以使用Postman測試工具來進行測試 

輸入http://localhost:56438/api/webapi   這個url地址是得到所有的products

 

 

 http://localhost:56438/api/webapi/2  根據id獲取product,效果如下