《Asp.Net Web API》-----webApi的简单使用

    前言:

    在公司工作的时候,经理跟我说我们后台用的是WebApi技术,说它是一种轻量级的WCF,我以前用过WCF,但是对于WebApi有点不熟悉,但是经理说和WCF相似,我渐渐的对着门技术变得渐渐的好奇起来,下面由小编带领着读者一块探索一下WebApi的世界吧!

    1、WebApi是什么?

    随微软ASP.NET MVC 4一起发布的还有一个框架,叫做ASP.NET Web API,是类似于REST化API的另一项web服务,简单的来讲,我的理解这就是一个提供接口的框架。

    2、什么时候REST化的API?

    REST指一组架构、约束、条件和原则,满足约束条件和原则的应用程序设计。架构,软件体系结构分为三部分:构建,用于描述计算机;连接器,用于描述构建的链接部分;配置将构建和连接器组成有机整体。web基本技术:URI(统一资源标示符)HTTP(超文本传输协议)(post、get、put、delete)Hypertext。1、每个资源都应该有唯一的一个标识。2、使用标准的方法更改资源的状态。3、request和response的自描述。4、资源多重表述。5、无状态服务。

    3、与其类似的技术:

    ASP.NET Web Services(ASP.NET Web服务)和Windows Communication Foundation(Windows通信基础 — WCF)。

    4、WebApi怎么用?

    打开VS2013,新建------>项目

       

    选择Visual C#   Web 下面的 VisualStudio 2012 ,在右边选择ASP.NET MVC 4 Web应用程序,更改名称后,点击确定。

   

     紧接着来到下一个页面,选择 WebApi,视图引擎用Razor就行,点击确定。

    

      接着,出现了一个应用程序。

    

     我们在Models中添加一个类,命名Product,代码如下,创建过程截图省略。

namespace WebApi1.Models
{
    public class Product
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Category { get; set; }
        public decimal Price { get; set; }
    }
}

     然后右击Controller文件夹,添加控制器


   在弹出的画面中,给控制器重命名,WebApiController,然后在模板中选择空Api控制器

  

    此控制器生成后,与Mvc控制器不同的是,此控制器继承一个APIController,我们在此控制器中添加相应的代码。

    

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 category)
        {
            return products.Where(
                (p) => string.Equals(p.Category, category,
                    StringComparison.OrdinalIgnoreCase));
        }
    }<span style="font-family:KaiTi_GB2312;font-size:18px;"></span>


   生成解决方案后,我们用IE启动它。接近着,出现下面这个画面。


    该首页是一个ASP.NET MVC视图,它是由HomeControllers类返回的。就这样,我们就可以访问此Api了,我这里用的是Postman借口测试工具测试的,Postman是谷歌浏览器的一个借口测试插件,大家可以安装。我分别访问了三个接口地址。注意,端口号是随机生成的。

     http://localhost:5537/api/webapi/地址:这个地址是得到所有的Products 。效果图如下所示。

     

      http://localhost:5537/api/webapi/1  根据id来访问商品,截图如下



    http://localhost:5537/api/webapi?category=water    根据种类访问接口,返回结果如下


    我们还可以用IE浏览器直接访问此接口,但是返回来得是一个webapi.json文件,我们可以选择打开它。截图如下

   

   5、小结

   这就是小编总结的webApi的简单实用,当然,公司中用的框架比这复杂的多了,在公司里我们使用AngularJS来访问后台接口数据的。上面的例子只是一个简单的小Demo,下一篇博客我将介绍WebApi中的路由,敬请期待。


  • 16
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 28
    评论
一、源码特点       1、先进的 HTTP 编程模型: 使用新的强类型的 HTTP 对象模型直接操作 HTTP 请求和响应, 在 HTTP客户端使用相同的编程模型和 HTTP 管道;       2、支持路由: Web API 完整支持 ASP.NET 路由, 包括路由参数和约束。 此外, 到动作的映射支持约定, 从此将不再需要向类或者方法添加类似于 [HttpPost] 之类的属性;       3、内容协商: 客户端与服务端可以一起决定 API 返回数据的格式。 默认支持 XML, JSON 以及 Form URL-Encoded 格式, 可以扩展添加自定义格式, 甚至可以替换掉默认的内容协商策略;       4、模型绑定与验证: 模型绑定器可以轻易地从 HTTP 请求中提取数据并转换成在动作方法使用的 .Net 对象;       5、过滤: Web API 支持过滤, 包括总所周知的 [Authorize] 过滤标记, 可以为 Action 添加并插入自定义过滤, 实现认证、异常处理等;       6、查询聚合: 只要简单的返回 Iqueryable , Web API 将会支持通过 OData 地址约定进行查询;       7、改进的 Http 细节可测试性: Web API 不是将 HTTP 细节设置到一个静态的 Context 对象上, 而是使用 HttpRequestMessage 和 HttpResponseMessage 实例, 可以使用这些对象的泛型版本为这些 Http 类型添加自定义类型;       8、改进的依赖反转 (IoC) 支持: Web API 使用 MVC Dependency Resolver 实现的服务定位器模式在不同的场景下来获取实例;       9、基于代码的配置: Web API 单独使用代码完成配置, 从而保证了配置文件的整洁;       10、自托管 (Self-Host) : Web API 除了可以托管在 IIS 中, 还可以托管在进程中,依旧可以使用路由以及其它的特性。 二、注意事项       1、开发环境为Visual Studio 2012,数据库为SqlServer2008,使用.net 4.0开发。
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值