- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
不管是因为什么原因,结果是在新出的 MVC中,增加了 WebAP,用于提供REST风格的 WebService,个人
比较喜欢REST风格的WebService,感觉比SOAP要轻量级一些,而且对客户端的要求也更少,更符合网络 数据传输的一般模式,客户端完全摆脱了代理和管道来直接和 WebService进行交互,具体的区别可以参见
Web服务编程,REST与SOAP
(一)环境准备
本机的环境是XP+VS2O10需要安装VS2010 SP1升级包,MVC軒级包,Vs2010安装SP1后会影响
SQLServer2008的自动提示功能,需要在安装补丁或插件,安装成功后可以新建如下的 MVC WebAPI项目
(二) 概览
新生成的 WebAPI项目和典型的 MVC项目一样,包含主要的 Models, Views, Controllers 等文件夹和文件
Views对于 WebAPI来说没有太大的用途,Models中的Model主要用于保存 Service和Client交互的对象, 这些对象默认情况下会被转换为 Json格式的数据进行传输, Controllers 中的Controller 对应于
WebService来说是一个Resource,用于提供服务。和普通的 MV(一样,用于配置路由规则
(三) Models
和WCF中的数据契约形成鲜明对比的是, MVCWebAPI中的Model就是简单的POCO没有任何别的东西,女口,
你可以创建如下的 Model
public class TestUseMode
{
public string ModeKey{get ; set ;}
public string ModeValue { get ; set ; }
}
注意:Model必须提供public的属性,用于json或xml反序列化时的赋值
(四) Controllers
MVCWebAPI中的Controllers 和普通 MVC的Controllers 类似,不过不再继承于 Controller ,而改为继承 API的ApiController ,一个Controller 可以包含多个 Action,这些 Action 响应请求的方法与 Global中 配置的路由规则有关,在后面结束 Global时统一说明
(五)Global
默认情况下,模板自带了两个路由规则,分别对应于 WebAPI和普通MVC的Web请求,默认的
规则如下
(
name: DefaultApi,
routeTemplate: api/{controller}/{id} ,
defaults: new { id = }
);
可以看到,默认路由使用的固定的 api作为Uri的先导,按照微软官方的说法,用于区分普通
WebService的请求路径:
Note: The reason for using api in the route is to avoid collisions with MVC routing. you can have /contacts go to an MVCcontroller, and /api/contacts go to a WebAPI Of course, if you dont like this convention, you can change the default route table.
可以看到,默认的路由规则只指向了 Controller ,没有指向具体的 Action,因为默认情况下,
Cont⑹ler 中的Action的匹配是和 Action的方法名相关联的:
具体来说,如果使用上面的路由规则,对应下面的 Controller :
朿
public class TestController : ApiController
{
public static ListTestUseMode allModeList = new ListTestUseMode();
public IEnumerableTestUseMode GetAll()
{
return allModeList;
}
public IEnumerableTestUseMode GetOne( string key)
{
WebAP I路由Web
WebAP I路由
Web请求和
That way, controller.
对于
public bool PostNew(TestUseMode mode)
{
(mode);
return true ;
}
public int Delete( string key)
return ((mode) = {
if == key) return true ; return false
您可能关注的文档
最近下载
- 现代移动通信第五版蔡跃明习题答案.docx
- 二次函数线段最值问题.ppt
- 新课标下音乐教学的策略和方法.pptx VIP
- 2021年护士资格考试统考历年真题汇总及答案.pdf
- J-T-G- 3370.1-2018 公路隧道设计规范 第一册 土建工程(正式版).docx VIP
- 【40套试卷合集】河北省石家庄市2019-2020学年英语九上期中模拟试卷含答案.pdf
- 党的二十届三中全会精神测试题490道.docx VIP
- 基于项目式学习的初中古诗教学研究.pdf
- 国家开放大学《管理英语4》边学边练Unit 1-4(答案全).docx VIP
- Axure-RP-9互联网产品原型设计(慕课版)全书电子教案完整版课件.pdf
文档评论(0)