官方定义如下,强调两个关键点,即可以对接各种客户端(浏览器,移动设备),构建http服务的框架。
ASP.NET Web API is a framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices. ASP.NET Web API is an ideal platform for building RESTful applications on the .NET Framework.
Web API在ASP.NET完整框架中地位如下图,与SignalR一起同为构建Service的框架。Web API负责构建http常规服务,而SingalR主要负责的是构建实时服务,例如股票,聊天室,在线游戏等实时性要求比较高的服务。
当你遇到以下这些情况的时候,就可以考虑使用Web API了。
- 需要Web Service但是不需要SOAP
- 需要在已有的WCF服务基础上建立non-soap-based http服务
- 只想发布一些简单的Http服务,不想使用相对复杂的WCF配置
- 发布的服务可能会被带宽受限的设备访问
- 希望使用开源框架,关键时候可以自己调试或者自定义一下框架
第一步 获取MVC4支持,以下链接为Visual studio 2010 MVC4补丁
http://download.microsoft.com/download/2/F/6/2F63CCD8-9288-4CC8-B58C-81D109F8F5A3/AspNetMVC4Setup.exe第二步 安装完毕,启动Visual studio 2010 新建项目中就有了 MVC4 模板
点击MVC4 项目模板 得到MVC4项目类型
得到Web API整个项目
Web API 项目有几处特点 第一点:继承的Controller 为ApiController
第二点:没有对应的View 第三点:路由配置不在Global.asax.cs中,而是在单独的App_Start文件夹下进行分离. Global中统一注册,更加便于单一管理。这也是MVC4的特点
Global中的注册:
App_Start目录
其中最重要的 WebApiConfig
其中就声明了,访问方式为api/控制器/参数(id)
现在直接运行得到效果
通过访问默认的 API/values 得到以下结果(使用F12网络捕获)
查看访问得到的详细结果
结果来源于
public IEnumerable Get()
{
return new string[] { " value1 ", " value2 " };
}
尝试根据ID返回:修改代码以便直观的看到改变
public string Get( int id)
{
return " value " + id;
}
访问 api/values/18
查看得到结果
参考:http://www.cnblogs.com/developersupport/p/aspnet-webapi.htm