《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,效果如下