小白快速入手Asp.Net WebApi2

前言

第一次入手WebApi,前前后后踩过各种坑,网上入门介绍大多千篇一律,但并未满足鄙人的要求,故撰写这篇文章,一步一步从零开始。

开发环境
工具:VS2013
语言:Visual C#

创建项目
1、打开VS2013
2、新建一个空的ASP.NET Web应用程序项目,命名为IocProject.WebApi,如下图:

103451_I00q_1995422.png

103521_EyiX_1995422.png

选择Empty模板,一来可以避免VS自动引用一大堆无需使用的DLL以及Javascript,二来通过从一个空的项目,逐步添加代码及配置,可以更容易了解WebAPI的基本依赖及最小运行需求。

103635_xIzs_1995422.png

上图是一个空的ASP.NET项目结构。

3、Nuget添加Microsoft ASP.NET Web API 2.2 (最新版本5.2.3)

103925_uPH6_1995422.png

104043_vVtl_1995422.png

安装Web API 2.2包,将自动安装相应的依赖,如下图所示:

104143_CmnW_1995422.png

4、添加全局应用程序类Global.asax

104425_K889_1995422.png

5、添加Web API路由代码

  1)新建一个App_Start文件夹,用于存放启动时各种不同启动配置

  2)新建一个WebApiConfig类,放在App_Start文件夹下,代码如下:

104936_iqt3_1995422.png

public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }

  3)修改Global.asax,加入上面写的WebAPI路由注册代码

GlobalConfiguration.Configure(WebApiConfig.Register);

如下图:

105228_7hYr_1995422.png

  4)新建一个Controllers文件夹,用于存放各种控制器类

  5)新建一个WebApi控制器类ProductController,如下图:

110835_Irqt_1995422.png

111054_RlJm_1995422.png

添加代码:

public IEnumerable<string> GetProducts()
        {
            return new[] {"product1","product2"};
        }

111637_FaM8_1995422.png

6、运行

111903_xc0V_1995422.png

点击Firefox,即可运行刚刚新出炉的WebAPI服务项目,如果你看到的是Internet Explorer,建议修改一下,否则你会失望的。
运行后,看到如下界面

112116_lf9V_1995422.png

Localhost表示本机,9393是新建ASP.NET项目时,VS随机给的一个端口,可以在项目属性中修改。
由于我们没有编写默认访问页面,此处出现403错误是正常的,我们只需要在URL后面加上“/api/product”即可以访问刚刚编写的ProductController。
这是浏览器中看到的

112443_MKMQ_1995422.png

使用Postman

112837_mvvG_1995422.png

这儿,可以注意到,使用浏览器直接访问和使用Postman访问,返回的似乎不同,实际上,这是WebAPI的一个特性,同一个控制器同一个Action,根据客户端要求,可以返回XML或者JSON。
7、总结
这是一个Hello World级别的Asp.Net WebApi2入门指南,相对于微软提供的整站WebAPI模板,优点是排除了其他无关的干扰,所有的注意力集中在WebAPI的创建和服务提供。

 

转载于:https://my.oschina.net/jokeny/blog/1595011

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
我觉得大部分人都是“眼球动物“,他们关注的往往都是目光所及的东西。对于很多软件从业者来说,他们对看得见(具有UI界面)的应用抱有极大的热忱,但是对背后支撑整个应用的服务却显得较为冷漠。如果我们将整个“生态系统”比喻成海面上漂浮的冰山,我们所能看的到的只是露出水面的冰山一角,水面之下才是一个“庞然大物”。 提到服务,我们自然想到Web Service。但是传统意义上的Web Service却有点名不副实,因为支撑它的其实不是Web而是SOAP,承载一个Web Service甚至可以根本不需要Web。随着互联网的普及,互联网应用(尤其移动互联网应用)已经成为主流,“SOAP之重”已经越来越令我们无法承受,于是采用REST架构风格并直接采用Web进行通信的轻量级Web Service走进了我们的视野并登堂入室。为了与传统的基于SOAP的Web Service以示区别,我们将后者称为Web API。 很多人鼓吹SOAP已死,我个人对此持不同的看法。上面讲的“重”与“轻”都是不带任何感情色彩的中性词,至于优劣评价则决定于它们是否适合应用的场景。到目前为止,对于企业级应用之间的内部集成互联,我觉得传统的Web Service依然是最好的选择。传统Web Service应用的领域貌似在不断被Web API占据,但是后者并不能完全被视为前者的替代品,它只是让“踩过界”的Web Service退回到它应该坚守的领地。Web Service和Web API在各自适合的领域各司其职,使“路归路、桥归桥”是一种理想的状态。 Web Service和Web API的合理布局同样也体现在微软技术平台上。WCF在过去是唯一的选择,这是一个具有“SOAP”基因的通信平台,微软后来利用扩展让它提供了针对REST的支持。正因为如此,如果使用WCF来构建Web API的话,我们依然需要采用传统的编程方式,Web API的“简单、快捷”完全得不到体现。微软意识到在一个“重量级”通信框架上通过扩展实现“轻量级”的通信,还不如重新构建一个通信平台,于是ASP.NET Web API应运而生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值