不管是因为什么原因,结果是在新出的 MVC 中,增加了 WebAPI,用于提供 REST 风格的
WebService,个人比较喜欢 REST 风格的 WebService,感觉比 SOAP 要轻量级一些,而且对客户端
的要求也更少,更符合网络数据传输的一般模式,客户端完全摆脱了代理和管道来直接和 WebService
进行交互,具体的区别可以参见 Web 服务编程,REST 与 SOAP
(一)环境准备
本机的环境是 XP+VS2010,需要安装 VS2010 SP1 升级包,MVC4 升级包,Vs2010 安装 SP1 后会影
响 SQLServer2008 的自动提示功能,需要在安装补丁或插件,安装成功后可以新建如下的 MVC
WebAPI 项目
(二)概览
新生成的 WebAPI 项目和典型的 MVC 项目一样,包含主要的 Models,Views,Controllers 等文件夹
和 Global.asax 文件
Views 对于 WebAPI 来说没有太大的用途,Models 中的 Model 主要用于保存 Service 和 Client 交互的
对象,这些对象默认情况下会被转换为 Json 格式的数据进行传输,Controllers 中的 Controller 对应于
WebService 来说是一个 Resource,用于提供服务。和普通的 MVC 一样,Global.asax 用于配置路由
规则
(三)Models
和 WCF 中的数据契约形成鲜明对比的是,MVC WebAPI 中的 Model 就是简单的 POCO,没有任何别的
东西,如,你可以创建如下的 Model
public class TestUseMode
{
public string ModeKey{get;set;}
public string ModeValue { get; set; }
}
注意:Model 必须提供 public 的属性,用于 json 或 xml 反序列化时的赋值
(四)Controllers
MVC WebAPI 中的 Controllers 和普通 MVC 的 Controllers 类似,不过不再继承于 Controller,而改为
继承 API 的 ApiController,一个 Controller 可以包含多个 Action,这些 Action 响应请求的方法与
Global 中配置的路由规则有关,在后面结束 Global 时统一说明
(五)Global
默认情况下,模板自带了两个路由规则,分别对应于 WebAPI 和普通 MVC 的 Web 请求,默认的
WebAPI 路由规则如下
1 routes.MapHttpRoute(
2 name: "DefaultApi",
3 routeTemplate: "api/{controller}/{id}",
4 defaults: new { id = RouteParameter.Optional }
评论1
最新资源