前言
第一次入手WebApi,前前后后踩过各种坑,网上入门介绍大多千篇一律,但并未满足鄙人的要求,故撰写这篇文章,一步一步从零开始。
开发环境
工具:VS2013
语言:Visual C#
创建项目
1、打开VS2013
2、新建一个空的ASP.NET Web应用程序项目,命名为IocProject.WebApi,如下图:
选择Empty模板,一来可以避免VS自动引用一大堆无需使用的DLL以及Javascript,二来通过从一个空的项目,逐步添加代码及配置,可以更容易了解WebAPI的基本依赖及最小运行需求。
上图是一个空的ASP.NET项目结构。
3、Nuget添加Microsoft ASP.NET Web API 2.2 (最新版本5.2.3)
安装Web API 2.2包,将自动安装相应的依赖,如下图所示:
4、添加全局应用程序类Global.asax
5、添加Web API路由代码
1)新建一个App_Start文件夹,用于存放启动时各种不同启动配置
2)新建一个WebApiConfig类,放在App_Start文件夹下,代码如下:
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);
如下图:
4)新建一个Controllers文件夹,用于存放各种控制器类
5)新建一个WebApi控制器类ProductController,如下图:
添加代码:
public IEnumerable<string> GetProducts()
{
return new[] {"product1","product2"};
}
6、运行
点击Firefox,即可运行刚刚新出炉的WebAPI服务项目,如果你看到的是Internet Explorer,建议修改一下,否则你会失望的。
运行后,看到如下界面
Localhost表示本机,9393是新建ASP.NET项目时,VS随机给的一个端口,可以在项目属性中修改。
由于我们没有编写默认访问页面,此处出现403错误是正常的,我们只需要在URL后面加上“/api/product”即可以访问刚刚编写的ProductController。
这是浏览器中看到的
使用Postman
这儿,可以注意到,使用浏览器直接访问和使用Postman访问,返回的似乎不同,实际上,这是WebAPI的一个特性,同一个控制器同一个Action,根据客户端要求,可以返回XML或者JSON。
7、总结
这是一个Hello World级别的Asp.Net WebApi2入门指南,相对于微软提供的整站WebAPI模板,优点是排除了其他无关的干扰,所有的注意力集中在WebAPI的创建和服务提供。